0

Web アプリケーションで xls テンプレートを生成しようとしています。そのために、PHPExcel を使用しています。パーソナライズされたフレームワーク (PHPFW) と ZendFramework も使用しています。

例を使用して最初のテストを実行しようとしています: 01simple-download.xls。しかし、ファイルがダウンロードされ、Excel mac 2008 を使用して開くと、次のエラー メッセージが表示されます。 PHPエクセルエラー

ここで、コントローラーで次のサンプル コードを使用して、ダウンロードする 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 で見つけられる最新バージョンであるかどうかを確認することをお勧めします。

ありがとう、@マーク・ベイカー!今ではうまくいきます!

于 2012-08-17T10:51:02.560 に答える