小辉o.o
2019-04-19 12:01
采纳率: 75%
浏览 533
已采纳

phpexcel 如何修改一个现有的表格 并且重新输出新表格

表格模板直接用php导出的话 调试模板错误 所以我想着直接往表格里直接写入数据
然后直接输出新表格 这个要怎么去弄

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • qq_22607961 2019-04-19 17:28
    已采纳

    可以上传现有的表格作为模板

     include 'data/extend/phpexcel_classes/PHPExcel.php';
    
        $xlsTitle = iconv('utf-8', 'gb2312', $expTitle); // 文件名称
        $fileName = $expTitle . date('_YmdHis'); // or $xlsTitle 导出新文件的名称,可根据自己情况设定,
        $cellNum = count($expCellName);//$expCellName这个是列对应的名称,主要形式以array(array('字段名称1'),array('字段名称2'))
        $dataNum = count($data);//这个是获取的数据的记录数
    
        $objPHPExcel = \PHPExcel_IOFactory::load("public/tmpl/customer_tmpl.xlsx" ); //加载模板的文件,参数为模板文件的路径
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $cellName = array(
            'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ'
        );
       /*这边是循环插入数据,具体可根据实际情况,我的模板是从第7行开始写入内容的*/
        for ($i = 0; $i < $dataNum; $i ++) {
            for ($j = 0; $j < $cellNum; $j ++) {
                $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i + 7), " " . $data[$i][$expCellName[$j][0]]);
            }
        }
        //这部分主要是导出之后下载部分的操作
        header('pragma:public');
        header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xlsx"');
        header("Content-Disposition:attachment;filename=$fileName.xlsx"); 
        $objWriter->save('php://output');
    
    
    
    打赏 评论

相关推荐 更多相似问题