簡體   English   中英

創建Excel文件的最有效方法

[英]Most effective way to create Excel files

尋找一個PHP解決方案以動態創建Excel文件(請考慮動態報告)。

現在,我已經了解了PHP Excel,並且知道可以創建CSV文件,但是這些是最好的選擇嗎?

我在使用PHP Excel的Linux系統上運行此腳本,但未設置所有選項

$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);

此處列出 PHPExcel的替代方法

但是,在您立即取消使用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 Writer不支持文檔屬性(盡管Excel2007支持)。 PHPExcel問題列表上有一個活躍的工作項。

就在這里。 您可以使用Pear的Spreadsheet_Excel_Writer 它僅創建BIFF8或更舊的文件(Word 2003),但是效果很好。

編輯:我只是注意到他們說它需要完全重寫,並且不建議將其用於新開發。 我已經在生產系統中使用了大約3年的時間,除了一些小bug之外,它對我來說非常有用...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM