1

私はExcelライブラリを使用してスプレッドシートを開いてその内容を読んでいます.相互運用ライブラリがホストしたいサーバーマシンで問題を引き起こすため、相互運用ライブラリよりもこのライブラリを使用しています.

https://code.google.com/p/excellibrary/

using ExcelLibrary.SpreadSheet;

Stream fileStream = System.IO.File.OpenRead(excelFileName); //FilePath
Workbook book = Workbook.Load(fileStream); //Exception thrown
Worksheet sheet = book.Worksheets[0];

コードを実行すると、ファイル ストリームの負荷を確認できます。

ここに画像の説明を入力

次の行に進むと、例外が発生します。バッファを null にすることはできません。

ここに画像の説明を入力

例外の後、ストリーム リーダーは canRead false になります。

ここに画像の説明を入力

4

5 に答える 5

3

@pomster が指摘したように、ここでのほとんどの問題は次のとおりです。

XLS ファイルのタイプが「97-2003」ではなく「5.0/95」である

于 2015-12-09T16:51:08.373 に答える
1

VB.NET コード:

Public Function importSheet(fileName As String) As Boolean
  Dim fileStream = System.IO.File.OpenRead(fileName)        
  Dim book = ExcelLibrary.SpreadSheet.Workbook.Load(fileStream)
  Dim sheet = book.Worksheets(0)

  'TO DO
  Return True
End Function

フォルダの許可を探します。

System.IO ライブラリに多くの例外がある場合は、読み取り/書き込みフォルダーとファイルのアクセス許可を調べます。

于 2015-01-07T20:26:43.220 に答える
0

簡単なプログラムを作成しただけで、この例外が発生しません。

Excelファイルを確認できますか?破損している可能性があります。

このアプリケーションを開くだけの簡単なプログラムを作成できますか?

string excelFileName = "";
        excelFileName = @"E:\Innovation\PAKISTAN.xls";
        Stream fileStream = System.IO.File.OpenRead(excelFileName); //FilePath
        Workbook book = Workbook.Load(fileStream); //Exception thrown
        Worksheet sheet = book.Worksheets[0];
于 2014-05-26T11:54:10.690 に答える
0

メソッドにストリームするのではなく、ファイル名を指定する必要があります。Workbook.Load独自のリンクの例を参照してください。

string file = "C:\\newdoc.xls";
// open xls file
Workbook book = Workbook.Load(file);
Worksheet sheet = book.Worksheets[0];

オーバーロードがある場合は、ライブラリの作成者に支援を求める必要があります (バグのようです)。

于 2014-05-26T11:39:35.133 に答える
-1

@パス ファイル名の先頭に記号が必要です。

試す

excelFileName = string.Format(@"{0}",excelFileName);
于 2016-02-22T21:29:17.743 に答える