0

我正在尝试使用 Npoi 打开一个 .xlsx 文件,但它不断崩溃并出现以下错误:

1 is not a supported code page.
Parameter name: codepage

我的代码很简单:

OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Excel Workbook|*.xlsx";

DialogResult dr = ofd.ShowDialog();

if (dr == DialogResult.OK)
{
    XSSFWorkbook myWorkbook;

    FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);

    using (fs)
    {
        myWorkbook = new XSSFWorkbook(ofd.FileName);
    }
}

尝试创建工作簿时发生错误。我也尝试使用流,例如:

myWorkbook = new XSSFWorkbook(fs);

有谁知道出了什么问题?我在网上找不到处理 .xlsx 文件的合适示例。我正在起诉最新版本(2.0.1)。

谢谢。

4

5 回答 5

5
ICSharpCode.SharpZipLib.Zip.ZipConstants.DefaultCodePage = Encoding.Default.CodePage;
...
FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read);
XSSFWorkbook workbook = new XSSFWorkbook(fs);

这个对我有用... ;)

于 2016-06-01T10:50:48.977 回答
2

我一直在使用 Workbook Factory 没有问题。它将检测文件是 xls 还是 xlsx 并为您返回适当的对象。请注意,这是 2.06 版。

快速示例:

_fileStream = new FileStream(filenamePath, FileMode.Open, FileAccess.Read);
_currentWorksheet = _workbook.GetSheetAt(0);
_workbook = WorkbookFactory.Create(_fileStream);
_fileStream.Close();
于 2014-05-24T14:56:18.777 回答
1

在过去的十年里,我一直是 Apache POI 用户,我认为 NPOI 和他的 Java 父亲一样好,但恐怕 TheGateKeeper 是对的:还有很长的路要走。

我必须寻找 OpenXML :(

于 2014-01-17T03:52:16.190 回答
0

请尝试最新的 NPOI 版本:NPOI 2.0 RC。这是链接:https ://npoi.codeplex.com/releases/view/112932

于 2014-01-13T18:23:07.047 回答
0

我能够使用另一个 Excel 库 EPPlus 成功打开文件。我仍然将 NPOI 用于 .xls 文件,但对于 .xlsx 我认为它还有很长的路要走。

于 2013-11-08T16:52:11.880 回答