在项目中,遇到这样的场景,读取用户选择的数据,写入现有的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');