我有一個500MB的excel(.xlsb/.xlsm)文件。我需要一種方法來使用C#讀取/寫入/修改大型(.xlsb/.xlsm)文件,而無需將整個文件加載到內存中,而是一次加載塊或至少加載一張表。如何讀取/寫入/修改大型Excel XLSB/XLSM文件? (C#)
2
A
回答
0
Excel文件基本上是包含XML文件的zip文件。如果您使用任何zip工具打開excel文件,您將看到excel文檔的內容。您需要修改的有:
XL/sharedStrings.xml - 高強在該文件索引它們(不是在視覺上優化字符串使用,但是你也可以遍歷到最後和計數 - 第一一個索引爲0,第二個索引爲1,依此類推......)。使用這些索引來更改/添加工作表文件中的字符串以避免損壞文檔。
xl/workbook.xml - 包含工作表的名稱。例如,你可以發現sheet1在excel中被命名爲「本月收入」。如果您願意,可以使用它來按名稱查找您的工作表。
xl /工作表/ *。xml - 這裏是您的實際工作表。要更改/添加字符串,請使用共享字符串XML文件。要更改/添加數字,請直接進行。包含共享字符串值的單元格被標記爲這樣。
現在,你只需要解析/而讀他們一行一行地不加載在內存中的整個文件編輯這些XML文件,你將能夠處理大量的數據,用很少的內存佔用。
在C#中,我使用ZipArchive臨時提取只需要的文件,編輯它們,然後更新zip。不要提取所有內容,然後再壓縮它,因爲你會損壞文件。至少我不知道如何壓縮它以這種方式再次使它可用。
相關問題
- 1. C++如何讀取和寫入文件
- 2. C#讀取和修改Excel單元格
- 3. 用PHP讀取大型excel文件
- 4. PHP:讀取和寫入Excel文件
- 5. UIpath excel文件讀取/寫入
- 6. 讀取Excel文件,並寫入詞典
- 7. 讀取/寫入Excel文件Visual Studio 2017
- 8. 讀取文件並寫入文件C
- 9. C#讀寫excel文件
- 10. 如何修改Perl腳本讀取Excel而不是HTML文件
- 11. C#創建/修改/讀取.xlsx文件
- 12. 如何讀取包含多於200,000行大型Excel文件和
- 13. 如何使用java讀取,寫入和創建excel文件?
- 14. 如何使用POI庫來讀取大型Excel文件(.xlsx)?
- 15. 寫入/讀取文本文件(C#)
- 16. Python:讀取文件 - 修改行 - 寫入輸出
- 17. C#Excel文件OLEDB讀取HTML導入
- 18. 如何讀取和寫入文件
- 19. 寫入修改文件
- 20. 如何在iOS上讀取 - 修改 - 寫入PDF(CGPDFDocument)?
- 21. 使用C#讀取/寫入Excel文件(.xls/.xlsx)
- 22. 在C#中讀取和寫入非常大的文本文件
- 23. 如何在android中讀取/寫入doc和excel文件?
- 24. 如何使用Ruby讀取和寫入同一個EXCEL文件?
- 25. 如何讀取,替換和寫入非常大的文件?
- 26. 讀取文本文件並將其寫入Excel中的excel
- 27. 如何使用PHPExcel從大型Excel文件(27MB +)中讀取大型工作表?
- 28. 用C#讀取大型XML文件
- 29. C#和讀取大型XML文件
- 30. 讀取大型數據集,並寫入到Excel
OpenXmlSDK是你的朋友:https://msdn.microsoft.com/en-us/library/office/bb448854.aspx – zaitsman
我已經嘗試過它,它使用xls(x),但它在xlsm上引發異常出於某種原因,除非我做錯了什麼。 –