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's Codeplex 中提到的所有方法都无济于事之后,我尝试弄乱 FileStream
属性并能够获得空白 .xslx
进行保存。我正在使用以下代码写回文件:
using (var file = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
{
workbook.Write(file);
}
这解决了将回存到 XssfWorkbook
的主要问题。
我有一段代码目前正在毫无问题地写入 .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's Codeplex 中提到的所有方法都无济于事之后,我尝试弄乱 FileStream
属性并能够获得空白 .xslx
进行保存。我正在使用以下代码写回文件:
using (var file = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
{
workbook.Write(file);
}
这解决了将回存到 XssfWorkbook
的主要问题。