光辉岁月_ 2019-04-19 12:01 采纳率: 50%
浏览 554
已采纳

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');
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 8月29日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!