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

时间:2013-04-12 19:13:02

标签: c# export-to-excel npoi

我尝试使用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。
您的帮助将受到高度赞赏。
谢谢。

1 个答案:

答案 0 :(得分:0)

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