簡體   English   中英

DotNetCore.NPOI 總是創建損壞的文件

[英]DotNetCore.NPOI always creates corrupted file

我使用DotNetCore.NPOI將數據導出到 *.xlsx 文件中,我的程序似乎內存不足,所以我嘗試使用相對較新的SXSSFWorkbook來降低內存占用,但生成的文件總是損壞且無法打開。

即使是這個簡單的示例(最初使用 Java 或其他語言)也會創建一個損壞的文件:

var wb = new SXSSFWorkbook(new XSSFWorkbook(), 1024); // keep 1024 rows in memory
var sh = wb.CreateSheet();
// Should not even have to flush anything before end, only 100 lines
for (int rownum = 0; rownum < 100; rownum++)
{
    var row = sh.CreateRow(rownum);
    for (int cellnum = 0; cellnum < 10; cellnum++)
    {
        var cell = row.CreateCell(cellnum);
        cell.SetCellValue($"{rownum}:{cellnum}");
    }
}
var o = new FileStream("test.xlsx", FileMode.Create, FileAccess.Write);
wb.Write(o);
o.Close();
wb.Dispose();

當我將第一行更改為此時,它可以工作(但始終將整個文檔保留在內存中):

var wb = new XSSFWorkbook();
...

不確定我是否應該像這樣將 XSSFWorkbook 實例傳遞到 SXSSFWorkbook 實例中: new SXSSFWorkbook(new XSSFWorkbook(), 1024) ,但不知道還能做什么。 原始示例中的 SXSSFWorkbook 構造函數只需要行數。 找不到任何專門針對 .NET 的示例。

謝謝你的幫助。

Dotnetcore.NPOI 不是正式的 NPOI 版本,他們很長一段時間停止維護這個分支。 請改用https://www.nuget.org/packages/NPOI/ 如果確認為錯誤,請將問題提交到https://github.com/tonyqus/npoi/issues

暫無
暫無

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

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