2017-02-27 22 views
1

Excelファイルを読み込み、ファイルの内容をデータテーブルに変換しようとしていますが、この例外が発生し続けます。特定の行を指すE_FAIL(0x80004005)でIErrorInfo.GetDescriptionが失敗しました。POCCommand.Fill(dt);これはこれまで試みました。私は何が間違っていますか?IErrorInfo.GetDescriptionはasp.net C#でE_FAIL(0x80004005)で失敗しましたか?

string POCpath = @"p.xlsx"; 
string POCConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + POCpath + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\";"; 

    OleDbConnection POCcon = new OleDbConnection(POCConnection); 
    OleDbCommand POCcommand = new OleDbCommand(); 
    DataTable dt = new DataTable(); 
    OleDbDataAdapter POCCommand = new OleDbDataAdapter("select * from [Sheet1$] ", POCcon); 
    POCCommand.Fill(dt); 
    Console.WriteLine(dt.Rows.Count); 
+0

[ExcelシートをDataTableに読み込むための最善の方法/最も速い方法はありますか?](http://stackoverflow.com/questions/14261655/best-fastest-way-to-read-an-excel-sheet-データ出力可能) – MrAmazing

答えて

0

まず、.NETを使用しているため、IDisposableから継承または実装するものをusingステートメントにラップする必要があります。

など:

using (OleDbConnection connection = new OleDbConnection("connectionstring")){ 
    //Do stuff here 
} 

第二: このSO AnswerMethodManことで、この偉大な答えを参照してください。 それはあなたが知る必要があるすべてを持っています。彼はOleDb接続と、より高速で安価なTextFieldParserの両方を行います。

関連する問題