首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHPExcel多页

PHPExcel多页
EN

Stack Overflow用户
提问于 2013-06-11 21:38:29
回答 1查看 1.7K关注 0票数 0

我有一个站点,我想在其中使用PHPExcel创建报告文件。我做了两个循环,一个用于第一张纸,其中我有一周的总结,另一个循环用于一周的每一天。我用我的脚本检索这个错误:

代码语言:javascript
复制
Catchable fatal error: Argument 1 passed to PHPExcel_IOFactory::createWriter() must be an instance of PHPExcel, null given, called in /var/www/reports/generate_reports_settimanale.php on line 79 and defined in /var/www/inc/PHPExcel/IOFactory.php on line 132

这是我的简化代码:

代码语言:javascript
复制
require_once '../inc/PHPExcel.php';
require_once '../inc/PHPExcel/IOFactory.php';

objPHPExcel = new PHPExcel();

        // Set document properties
        $objPHPExcel->getProperties()->setCreator("Alessandro Minoccheri")
                                     ->setLastModifiedBy("Alessandro Minoccheri")
                                     ->setTitle("Office 2007 XLSX Test Document")
                                     ->setSubject("Office 2007 XLSX Test Document")
                                     ->setDescription("Generazione report inverter")
                                     ->setKeywords("office 2007 openxml php")
                                     ->setCategory("");

        $row=1;
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow('0', $row, 'Inverter');
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow('1', $row, 'Channel');


            $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow('0', 1, 'inverter');
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow('1', 1, 'channel');

            $objPHPExcel->setActiveSheetIndex(0);
        $objWriter3 = PHPExcel_IOFactory::createWriter($objPHPExcel3, 'Excel5');

            $week_end = date( 'Y-m-d 23:59:59', $start + ( 6 * 86400 ) );
            $week_start = date( 'Y-m-d 00:00:00', $start );
            $date = $week_start;
        while (strtotime($date) <= strtotime($week_end)) {
            $date = date ("Y-m-d", strtotime("+1 day", strtotime($date)));
            $objWorkSheet = $objPHPExcel->createSheet($date); //Setting index when creating

            //Write cells
            $objWorkSheet->setCellValue('A1', 'Hello'.$i)
                    ->setCellValue('B2', 'world!')
                    ->setCellValue('C1', 'Hello')
                    ->setCellValue('D2', 'world!');

            // Rename sheet
            $objWorkSheet->setTitle("test");
        }

            header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="report.xls"');
        header('Cache-Control: max-age=0');
        $objWriter3->save('php://output');

我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-11 21:41:20

代码语言:javascript
复制
 $objPHPExcel->setActiveSheetIndex(0);
 $objWriter3 = PHPExcel_IOFactory::createWriter($objPHPExcel3, 'Excel5');

正如错误所说..。$objPHPExcel3还不存在。到目前为止,您只在脚本中使用了$objPHPExcel。您正在向它发送一个空值。(在查看代码时,我没有看到您创建过$objPHPExcel3)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17045566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档