0

以下のコードを使用して、Excel シートからデータを読み取り、そのデータをデータ シートに追加していますが、ファイルを読み取ってデータ テーブルのデータを調べると、一部のデータが欠落しています。なぜこれが当てはまるのかわかりません。

excelConnectionString =
                  "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName +
                      " ;Extended Properties=Excel 12.0";
            try
            {
                // Create Connection to Excel Workbook
                using (OleDbConnection connection =
                new OleDbConnection(excelConnectionString))
                {
                    connection.Open();
                    System.Data.DataTable dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    string[] excelSheet = new String[dt.Rows.Count];
                    int sheet = 0;
                    foreach (DataRow row in dt.Rows)
                    {
                        excelSheet[sheet] = row["Table_Name"].ToString();
                        sheet++;

                    }
                    for (int i = 0; i < excelSheet.Length; i++)
                    {
                        OleDbCommand command = new OleDbCommand
                             ("Select  * FROM [" + excelSheet[i] + "]", connection);

                        adapter.SelectCommand = command;
                        adapter.Fill(dt);
                        dataGridView1.DataSource = dt;
                    }
4

3 に答える 3

1

誰もあなたの質問を再現して特定の問題を見つけることはできません. しかし、ここで同様の質問を見つけることができます。

Datagridview を使用して Excel ファイルを読み取る

Excel を Datatable にエクスポート

于 2012-11-16T05:50:56.687 に答える
0

Excelファイルの読み取りに使用OledbConnectionすると、各列の文字数の制限が255であるという問題が発生します。

「IMEX=1;」を追加してみてください。接続文字列の最後までですが、それで問題が解決するかどうかはわかりません。

于 2012-11-15T13:14:48.093 に答える
0

使用OleDbConnectionすると、255 列しか読み取れないという制限があります。大きなシートでこの問題に遭遇し、アプローチを変更する必要がありました。

この問題に関するディスカッションへのリンク: http://social.msdn.microsoft.com/Forums/office/en-US/0678e022-b435-4f47-a79c-73780301cfb3/using-ace-120-to-import-an- 255 列以上の Excel ワークシート

これは、しばらくの間解決されない古い既知の問題のようです。

于 2013-08-12T14:36:10.683 に答える