2

.NET(C#)を介してExcelスプレッドシートを読み込もうとしています

以下は、私が使用する接続文字列です。

Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Windows\TEMP\96e7a8b720b642388d9dbbca49537678.xls; Extended Properties="Excel 8.0;HDR=Yes;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text";

以下を使用してスキーマを確認したとき:

using (var conn = new OleDbConnection(connStr))
        {
            conn.Open();
            result[OleDbSchemaGuid.Tables] = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            result[OleDbSchemaGuid.Columns] = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, null);
            result[OleDbSchemaGuid.Tables_Info] = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables_Info, null);
            conn.Close();
        }

result[OleDbSchemaGuid.Columns]-すべての列名は最初の64文字に切り捨てられます。

すべての列のフルネームが必要です。

この問題を回避/解決するためのアイデアはありますか?

この質問をご覧いただきありがとうございます。

4

1 に答える 1

0

MSDNでのこの議論によると、Timは正しいです。これはJetの制限であるため、サードパーティのデータアクセスプロバイダーを使用する必要があります。

編集

サードパーティのプロバイダーを使用せずに実行することもできます。今日、マイクロソフトのサポートサイトでこれを読みました。それらによると、その制限Jet 4.0LEDB Source

于 2012-08-24T05:59:01.650 に答える