【问题标题】:PHPExcel exception error "cell cordinate can not be zero-length string" trying simple example to generate a xls filePHPExcel异常错误“单元格坐标不能是零长度字符串”尝试简单示例生成xls文件
【发布时间】:2012-08-17 08:39:30
【问题描述】:

我正在尝试在我的 Web 应用程序中生成一个 xls 模板,为此,我正在使用 PHPExcel。我使用个性化框架 (PHPFW) 和 ZendFramework。

我正在尝试使用示例进行我的第一个测试:01simple-download.xls。但是当下载文件并使用 Excel mac 2008 打开它时,我收到以下错误消息:

现在,我在控制器中使用以下示例代码来生成要下载的 xls 文件:

    public function bulkUploadTemplateExcel($ctx) {
    /** Error reporting */
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    date_default_timezone_set('Europe/London');

    if (PHP_SAPI == 'cli')
        die('This example should only be run from a Web Browser');

    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();
    // Set document properties
    $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
    ->setLastModifiedBy("Maarten Balliauw")
    ->setTitle("Office 2007 XLSX Test Document")
    ->setSubject("Office 2007 XLSX Test Document")
    ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
    ->setKeywords("office 2007 openxml php")
    ->setCategory("Test result file");


    // Add some data
    $objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1', 'Hello')
    ->setCellValue('B2', 'world!')
    ->setCellValue('C1', 'Hello')
    ->setCellValue('D2', 'world!');

    // Miscellaneous glyphs, UTF-8
    $objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A4', 'Miscellaneous glyphs')
    ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');

    // Rename worksheet
    $objPHPExcel->getActiveSheet()->setTitle('Simple');


    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);


    // Redirect output to a client’s web browser (Excel5)
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="01simple.xls"');
    header('Cache-Control: max-age=0');

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
    exit;
}

你知道我可能做错了什么吗?

PS:如示例所示,我在视图中执行require_once 'application/classes/lib/PHPExcel.php';(在 phpfw 中,控制器调用调用模板的视图)。

【问题讨论】:

  • 这是使用生产版本 1.7.7 还是使用来自 github 的代码?
  • 我猜这是本周早些时候从 github 开发分支中提取的(因为在过去的几天里我已经收到了数百个关于它的投诉) - 这个错误现在已经在开发中解决了分支。
  • 正如你所问的,我不确定,我刚刚替换了 github 版本,它现在可以工作了!谢谢@马克贝克。但是我试图解决一件奇怪的事情,但我无法理解发生了什么......这是自动加载的问题:在我的 index.php 文件中,我有这个: $autoloader = Zend_Loader_Autoloader::getInstance()-> setFallbackAutoloader(true);我必须让它工作: $autoloader = Zend_Loader_Autoloader::getInstance();//->setFallbackAutoloader(true);但我不确定它是否会在我的应用中产生一些新问题

标签: php exception phpexcel


【解决方案1】:

正如@Mark Ba​​ker 所说,这个问题的发生只是因为我使用的版本。 我建议所有有相同问题的用户检查您使用的版本是否是您可以在 github 中找到的最新版本。

再次感谢@Mark Ba​​ker!现在效果很好!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-26
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多