不能使用NPOI编辑现有的Excel文件

本文关键字:Excel 文件 编辑 NPOI 不能 | 更新日期: 2023-09-27 18:08:48

我试着用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。打开时,构造函数可以正常工作,但这只是为了阅读。我认为有一些事情与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没有工作表的集合,也没有添加方法,新的工作表只是由CreateSheet()方法创建。真烦人。

你能帮我一下吗?我先试试NPOI,然后再试试EPPlus。
非常感谢您的帮助
谢谢

不能使用NPOI编辑现有的Excel文件

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