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连接字符串的另一个扩展属性。

请检查这个

在读取 Excel 文件时跳过第一行

于 2013-01-21T11:13:13.990 回答
0

About data fromrow[0]可以帮助将属性包含HDR=No;在您的连接强的扩展属性中。

于 2013-01-21T11:08:27.287 回答