无法使用NPOI编辑现有的Excel文件?

我试着用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没有工作表集合,也没有Add方法,所以新工作表仅由CreateSheet()方法创建。 这很烦人。

你能帮我解决这个问题吗? 我正在尝试NPOI,然后我会尝试EPPlus。
您的帮助将不胜感激。
谢谢。


你的文件格式是什么? xls或xlsx? 如果使用xlsx,您现在可以试用NPOI 2.0。 支持xlsx。 这里是下载链接:https://npoi.codeplex.com/releases/view/112932

链接地址: http://www.djcxy.com/p/35757.html

上一篇: Can't edit the existing Excel file with NPOI?

下一篇: Copy an entire worksheet to a new worksheet in Excel 2010