コードは次のとおりです。
using (FileStream file = new FileStream(databaseLocation, FileMode.Open, FileAccess.Read))
{
// _Sheet is of type IWorksheet
_Sheet = new XSSFWorkbook(file).GetSheetAt(0);
}
これは、使用するオーバーロードに関係なく、継続的にさまざまな例外をスローします。この質問に対して上記の特定のオーバーロードを選択したのは、他のすべての人が (基本的に) この正確な方法で Excel 2007 (.xlsx) ファイルを開くことができるようだからです!
この特定のオーバーロードにより、「ZipException - ヘッダー内の EOF」というエラーが表示されます。文字列のオーバーロード (つまり ) に対して、もう 1 つの愛情を込めて説明するエラー「ZipException - 中央の辞書が見つかりません」が表示されます_Sheet = new XSSFWorkbook(databaseLocation).GetSheetAt(0);
。
NPOI が ICSharpCode の SharpZipLib を実装する方法に問題があるかどうかはわかりません。いずれにせよ、Excel 2007 ファイルを開くことができる必要があります。
Google検索で提案されているものの中で、0にリセットしようとしfile.Position
ましたが、あまりうまくいきません. 髪が抜ける前に助けて!