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

私は過去 10 年間 Apache POI のユーザーであり、NPOI は彼の Java の父と同じくらい優れていると思っていましたが、残念ながら TheGateKeeper は正しいです。

私はOpenXMLを探す必要があります:(

于 2014-01-17T03:52:16.190 に答える
0

別の Excel ライブラリである EPPlus を使用して、ファイルを正常に開くことができました。私はまだ .xls ファイルに NPOI を使用していますが、.xlsx にはまだ長い道のりがあると思います。

于 2013-11-08T16:52:11.880 に答える