簡體   English   中英

NPOI - 寫入文件損壞.xlsx工作簿

[英]NPOI - Writing to file corrupts .xlsx workbook

我有一段代碼,目前寫入.xls工作簿( HSSFWorkbook ),沒有任何問題。 但是,當我嘗試使用相同的代碼寫入.xlsx工作簿( XSSFWorkbook )時,存檔已損壞,無法在Excel中打開。

下面的代碼是我用來訪問工作簿,編輯工作簿,然后保存回工作簿。 我最初假設我用來編輯工作簿的代碼是問題,但在評論之后問題仍然存在。

IWorkbook workbook;
using (var file = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    if (Path.GetExtension(fileName).Contains("xlsx"))
    {
        workbook = new XSSFWorkbook(file);
    }
    else
    {
        workbook = new HSSFWorkbook(file);
    }
}

//Code that edits workbook which is currently commented out

using (var file = new FileStream(path, FileMode.Open, FileAccess.ReadWrite))
{
    workbook.Write(file);
}

我已經嘗試對空白的.xlsx工作簿運行此代碼,文件已損壞,無法再打開。

我正在使用nuget的最新穩定版NPOI: NPOI 2.1.3.1

在嘗試了NPOI的Codeplex上提到的所有內容后,我嘗試搞亂FileStream屬性並能夠獲得空白的.xslx來保存。 我使用以下代碼寫回文件:

using (var file = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
{
    workbook.Write(file);
}

這解決了保存回到XssfWorkbook的主要問題。

暫無
暫無

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

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