代码之家  ›  专栏  ›  技术社区  ›  Phill Pafford

创建Excel文件的最有效方法

  •  2
  • Phill Pafford  · 技术社区  · 14 年前

    PHP Excel 我知道我可以创建一个CSV文件,但这些是最好的选择吗?

    $objPHPExcel->getProperties()->setCreator("Phill");
    $objPHPExcel->getProperties()->setLastModifiedBy("Phill");
    $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
    $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
    $objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX");
    

    另外,如果我给出扩展名.xls而不是.xlsx,它将抛出一个无效文件,并且不会打开。(注意:我正在使用Open Office查看生成的excel工作表)

    想知道有没有其他更好的解决方案?

    编辑:

    如何保存文件

    $file = '/path/to/777/dir/file.xlsx'; // not viewable by public
    $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
    $objWriter->save($file);
    
    2 回复  |  直到 10 年前
        1
  •  4
  •   Community CDub    8 年前

    如表所示,除了PHPExcel,还有其他选择 here

    但在你解雇PHPExcel之前,我想知道它为什么不起作用。这是一种正常工作的方式,没有任何问题;但是您的代码片段没有显示任何有关保存文件的内容。

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('/path/to/777/dir/file.xls');
    

    编辑

    $file = '/path/to/777/dir/file.xls'; // not viewable by public 
    $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 
    $objWriter->save($file); 
    

    最新版本的Open Office也会(我相信)读取.xlsx文件,但如果它们具有正确的扩展名,则会更好。

    请注意,Excel5编写器不支持文档属性(尽管Excel2007支持)。PHPExcel问题列表中有一个活动的工作项。

        2
  •  0
  •   ircmaxell    14 年前

    是的。你可以用 Pear's Spreadsheet_Excel_Writer . 它只创建BIFF8或更旧的文件(Word 2003),但它工作得很好。

    编辑:

    推荐文章