1. 程式人生 > >thinkphp 使用phpExcel 匯出表格

thinkphp 使用phpExcel 匯出表格

下載 PHPExcel(https://github.com/PHPOffice/PHPExcel

把下載的 zip 包解壓至 ./ThinkPHP/Library/Vendor 下

 

//匯出
public function outexcel(){
    
    vendor("PHPExcel.PHPExcel");
    $PHPExcel = new \PHPExcel();
    $PHPSheet = $PHPExcel->getActiveSheet();
    $PHPSheet->setTitle("資訊統計"); //給當前活動sheet設定名稱
    $PHPSheet->setCellValue("A1", "欄目1")
        ->setCellValue("B1", "欄目2")
        ->setCellValue("C1", "欄目3")
        ->setCellValue("D1", "欄目4")
        ->setCellValue("E1", "欄目5")
        ->setCellValue("F1", "欄目6")
        ->setCellValue("G1", "欄目7")
        ->setCellValue("H1", "欄目8")
        ->setCellValue("I1", "欄目9")
        ->setCellValue("J1", "欄目10");
  //對齊方式
        $PHPSheet->getStyle("A1:J1")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//水平方向上兩端對齊
        $PHPSheet->getStyle("A1:J1")->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//垂直方向上中間居中


        $i = 2;
        foreach($list as $data){
            //對齊方式
            $PHPSheet->getStyle("A{$i}:J{$i}")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//水平方向上兩端對齊
            $PHPSheet->getStyle("A{$i}:J{$i}")->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//垂直方向上中間居中
            //設定行高
            $PHPSheet->getRowDimension($i)->setRowHeight(20);
            //設定行寬
            $PHPSheet->getColumnDimension("B")->setWidth(20);
    $i = 2;
    foreach($list as $data){
            $PHPSheet->setCellValue("A" . $i, $data['c0'])
                ->setCellValue("B" . $i, $data['c1'])
                ->setCellValue("C" . $i, $data['c2'])
                ->setCellValue("D" . $i, $data['c3'])
                ->setCellValue("E" . $i, $data['c4'])
                ->setCellValue("F" . $i, $data['c5'])
                ->setCellValue("G" . $i, $data['c6'])
                ->setCellValue("H" . $i, $data['c7'])
                ->setCellValue("I" . $i, $data['c8'])
                ->setCellValue("J" . $i, $data['c9']);
            $i++;
    }

    $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, "Excel2007");
    ob_end_clean();
    header('Content-Disposition: attachment;filename="資訊統計表格.xlsx"');
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    $PHPWriter->save("php://output"); 
    exit;
}