我正在PHP中開發小型API,我需要創建一個ZIP存檔,但內容(文件)也是用PHPExcel庫隨時創建的,任何人都知道如何執行它?從PHPExcel Objects創建ZIP存檔
回答
好像你可以這樣做:
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'file content goes here');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>
所以,你必須得到PHPExcel字符串中的使用方法addFromString
內容。
欲瞭解更多信息,看看這裏:http://php.net/manual/en/ziparchive.addfromstring.php
所以,你的男人,在ma case我應該使用類似的東西:\t \t \t <?php \t \t \t $ zip = new ZipArchive; \t \t \t $ res = $ zip-> open('test.zip',ZipArchive :: CREATE); \t \t \t如果($ RES === TRUE){ \t \t \t \t $ zip-> addFromString( 'TEST.XLS',$ objectWriter->保存( 「excel_file.xls」)); \t \t \t \t $ zip-> close(); \t \t \t \t echo'ok'; \t \t \t}否則{ \t \t \t \t回波 '失敗'; \t \t \t} \t \t \t?> – Robert 2012-03-09 11:09:39
你需要得到一個字符串VOM PHPExcel對象和路徑這個字符串'addFromString'方法。我不知道這種方法是否存在。檢查PHPExcel的手冊。否則,你必須按照DaveRandom(創建Tmp XLS文件...)描述的方式。 – tonymarschall 2012-03-09 11:39:58
- 1. 創建使用Go的存檔Unicode文件名zip存檔/ ZIP
- 2. PHPExcel創建/樣式/保存PDF文檔
- 3. 如何使用PowerShell創建zip存檔?
- 4. 在C++中創建一個zip存檔
- 5. 從ByteStream創建ZIP/TGZ檔案
- 6. 從Filechannels創建Zip歸檔文件
- 7. gitpython創建zip檔案
- 8. Ruby:創建multivolume Zip檔案?
- 9. 從Windows命令提示符創建時間戳ZIP存檔
- 10. php zip存檔
- 11. 從內存流C創建Zip文件#
- 12. 在內存中創建一個ZIP存檔使用System.IO.Compression
- 13. PHPExcel創建
- 14. Android SDK Zip存檔
- 15. 無需執行創建zip或tar.gz存檔
- 16. 從ZIP檔案
- 17. PHPExcel保存動態檔案
- 18. 在python中創建zip檔案
- 19. 在Java中創建zip檔案
- 20. PHP傳遞HTML字符串來創建ZIP存檔
- 21. zip與MAMP存檔?
- 22. 從Business Objects創建Sql數據庫表
- 23. Perl:創建ZIP存檔,同時忽略路徑名稱
- 24. 如何使用Ruby on Rails創建一個zip存檔?
- 25. 創建maven「目標」目錄的zip存檔
- 26. 未能創建ZIP存檔,但沒有錯誤信息
- 27. 使用Textfile中的文件創建7-Zip存檔 - Powershell
- 28. 創建zip存檔以便即時下載
- 29. Gradle任務創建目錄的zip存檔
- 30. 從zip創建文件 - android
最簡單的方法是創建一個臨時目錄,創建您的Excel文件,並在它甩掉他們,創建的目錄的內容的zip壓縮包,服務zip壓縮包然後刪除臨時數據。這在程序上是最簡單的方式,但在磁盤I/O方面效率不高 - 因此您可以在內存中完成所有操作,但在內存使用方面效率不高。無論採用哪種方法,您只需將流程分成「創建Excel文件」 - >「壓縮文件」 - >「發送數據」 - >「刪除在1和2期間創建的任何臨時數據」 – DaveRandom 2012-03-09 11:07:25
我只能在飛行中執行此操作,在這種情況下我無法使用I/O操作 – Robert 2012-03-09 11:10:27
您的意思是您必須在內存中執行此操作,並且無法將任何內容(即使是暫時的)寫入磁盤?這將是非常昂貴的內存... – DaveRandom 2012-03-09 11:12:25