0

我尝试使用 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。
您的帮助将不胜感激。
谢谢。

4

1 回答 1

0

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

于 2014-01-13T18:32:27.567 回答