我尝试使用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个选项供选择,中间一个是关闭应用程序:
snapshot
这就是我无法理解并且难以解决的原因。
如果我将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没有工作表的集合,也没有Add方法,新工作表只是由CreateSheet()方法创建的。这太烦人了。
你可以帮我解决这个问题吗?我首先尝试NPOI,然后我会尝试EPPlus。答案 0 :(得分:0)
你的文件格式是什么? xls还是xlsx?如果是xlsx,您现在可以尝试NPOI 2.0。支持xlsx。 这是下载链接:https://npoi.codeplex.com/releases/view/112932