0

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

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

现在,我在控制器中使用以下示例代码来生成要下载的 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 中,控制器调用了调用模板的视图)。

4

1 回答 1

0

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

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

于 2012-08-17T10:51:02.560 回答