【发布时间】:2016-03-21 21:53:20
【问题描述】:
我有一段代码正在写入.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
【问题讨论】: