简体   繁体   English

PHPExcel异常错误“单元坐标不能为零长度的字符串”,尝试通过简单示例生成xls文件

[英]PHPExcel exception error “cell cordinate can not be zero-length string” trying simple example to generate a xls file

I'm trying to generate a xls template in my web application and for that, I'm using PHPExcel. 我试图在我的Web应用程序中生成一个xls模板,为此,我正在使用PHPExcel。 I use a personalized framework (PHPFW) and also ZendFramework. 我使用个性化框架(PHPFW)和ZendFramework。

I'm trying to do my first test using the example: 01simple-download.xls. 我正在尝试使用以下示例进行第一次测试:01simple-download.xls。 But when the file is downloaded and I open it using Excel mac 2008, I have the following error message: 但是,当下载文件并使用Excel mac 2008打开它时,出现以下错误消息: PHPExcel错误

Now, I'm using the following example code in my controller to generate the xls file to download: 现在,我在控制器中使用以下示例代码来生成要下载的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;
}

Do you have any idea of what am I possibly doing wrong? 您是否知道我可能做错了什么?

PS: as in the example, I'm doing the require_once 'application/classes/lib/PHPExcel.php'; PS:如示例所示,我正在执行require_once 'application/classes/lib/PHPExcel.php'; in my view (in phpfw, the controller calls a view that calls a template). 在我看来(在phpfw中,控制器调用了一个调用模板的视图)。

As @Mark Baker said, this problem was happening just because of the version I was using. 正如@Mark Ba​​ker所说,此问题是由于我使用的版本而发生的。 I'd recommend all users who have the same problem to check if the version ur using is the latest version u can find in github. 我建议所有有相同问题的用户检查您使用的版本是否是您可以在github中找到的最新版本。

Thanks again, @Mark Baker! 再次感谢@Mark Ba​​ker! Now it works well! 现在效果很好!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM