我尝试使用 NPOI 创建一个新的 Excel 文件,它工作正常,读取(仅)一个 Excel 文件也可以。但是现在我想打开一个现有的 Excel 文件并在其上附加一些行,它在 NPOI.HSSF.UserModel.HSSFWorkbook 构造函数的代码行中崩溃了。这是代码:
using(FileStream fs = new FileStream(myFile, FileMode.Append)){
HSSFWorkbook wb = new HSSFWorkbook(fs); //<-- It is crashed right at here
....
}
没有异常细节,只是显示一个窗口说应用程序崩溃并提供3个选项可供选择,中间一个是关闭应用程序:
快照
这就是为什么我无法理解并很难解决它。
如果我将 FileMode 更改为 FileMode.Open,则构造函数可以正常工作,但这只是为了阅读。我认为有一些与 FileAccess 政策相关的事情并尝试了这个:
using(FileStream fs = new FileStream(myFile, FileMode.Append, FileAccess.ReadWrite)){//<-- However it is crashed right at here
HSSFWorkbook wb = new HSSFWorkbook(fs);
....
}
我尝试了一种解决方法,方法是打开(只读)现有的 Excel 文件,复制其中的 1 张并将此表添加到新的 HSSFWorkbook 并将(只写)写入新的文件流,但是没有办法做到这一点,因为 HSSFWorkbook 没有 Worksheet 的集合,也没有 Add 方法,所以新的工作表只是通过 CreateSheet() 方法创建的。这太烦人了。
你能帮我解决这个问题吗?我先尝试 NPOI,然后再尝试 EPPlus。
您的帮助将不胜感激。
谢谢。