1

Excelファイルからデータテーブルにデータを書き込むために以下のコードを書きましたが、何らかの理由でデータテーブルに書き込むときにインデックス0と1の行のデータが表示されません。なぜこれができるのか、誰にも考えがありますか..

var excelDataTable = new DataTable();
            var excelAdapter = new OleDbDataAdapter();

            var excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " + excelFileName + ";Extended Properties=Excel 12.0;";
            // Create Connection to Excel Workbook
            using (var excelConnection = new OleDbConnection(excelConnectionString))
                {                    
                    excelConnection.Open();

                    var dt = excelConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    if (dt != null)
                    {
                        var excelSheet =  new String[dt.Rows.Count];
                        int i = 0;
                        foreach (DataRow row in dt.Rows)
                        {
                            excelSheet[i] = row["Table_Name"].ToString();
                            i++;
                        }

                        var command = new OleDbCommand
                            ("Select  * FROM [" + excelSheet[0] + "]", excelConnection); // should be first sheet not the name of the sheet, should be index

                        excelAdapter.SelectCommand = command;
                    }
                    excelAdapter.Fill(excelDataTable);
                    excelConnection.Close();
                }
4

2 に答える 2

1

接続文字列に問題があります.................................ヘッダーを避けたい場合、またはヘッダー行を含めたい場合、または最初の行から開始する場合は、含める必要がありますExcel の conncetion 文字列のもう 1 つの拡張プロパティ。

これをチェックしてください

Excelファイルの読み取りで最初の行をスキップ

于 2013-01-21T11:13:13.990 に答える
0

About data fromは、強力な接続の拡張プロパティにrow[0]プロパティを含めるのに役立ちます。HDR=No;

于 2013-01-21T11:08:27.287 に答える