在項目中,遇到這樣的場景,讀取用戶選擇的數據,寫入現有的excel模板中,供用戶下載,需要對已有的excel進行寫入後另存爲。代碼如下(使用onethink框架,請事先下載phpexcel並拷貝到Vendor目錄下):
1、讀取excel模塊:
$excel_path = "outexcel/model_use.xlsx";
$type = "xlsx";
Vendor('PHPexcel.PHPExcel');
if(strtolower ( $type )=='xls'){
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
}elseif(strtolower ( $type )=='xlsx'){
$objReader = \PHPExcel_IOFactory::createReader('Excel2007');
}
$objPHPExcel = $objReader->load($excel_path);
2、寫入數據
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('B2', 'test') //單位名稱
->setCellValue('D2', 'name') // 統一社會信用代碼
->setCellValue('A4', 'age'); //部門職能
3、另存爲excel
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('outexcel/test/test.xlsx');