0

ExcelファイルをDataTableに読み込もうとしていますが、IMEXドライバーが列のすべてのデータを読み上げません。これの問題は何ですか?

OleDbConnection dCon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=HDR=YES;Excel 12.0;IMEX=1");

これがコードです。

OleDbConnection dCon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
            fileName + ";Extended Properties=HDR=YES;Excel 12.0;IMEX=1");

OleDbDataAdapter dAdp = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", dCon);
dAdp.TableMappings.Add("tbl", "Table");
dAdp.Fill(dSet);
DataTable dT = dSet.Tables[0];

for (int i = 0; i < dT.Rows.Count; i++)
{
     //code for getting the values.
}
4

2 に答える 2

1

問題は、この方法でそれを行うのは255文字に制限されていることです。

Microsoft.Office.Interop.Excelより良い解決策のために、アセンブリの使用を検討する必要があるかもしれません。

http://www.dotnetperls.com/excel

于 2012-11-13T10:00:43.063 に答える
0

これはOPにとって少し遅れていることに気づきましたが、それに遭遇したので、この例では拡張プロパティセクションの形式が正しくないと信じていることを付け加えたいと思います。拡張プロパティを適切に処理するには、拡張プロパティを個別に引用符で囲む必要があります。

OPの例ではこれを使用しました

OleDbConnection dCon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
        fileName + ";Extended Properties=HDR=YES;Excel 12.0;IMEX=1");

これはそうあるべきだったと思います

OleDbConnection dCon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
        fileName + ";Extended Properties=\"HDR=YES;Excel 12.0;IMEX=1\"");

この不正な接続では、IMEX属性が認識されていなかった可能性があります。

拡張プロパティのオプションを含む、可能な接続文字列構文オプションについては、このMSの記事を参照してください。

于 2013-10-30T17:55:03.893 に答える