使用C#中的OleDbConnection读取Excel表单时丢失数据

我需要读取Excel数据并存储在数据库中。 当我试图读取数据时,有一些数据错过了,我无法find。

这是我的Excel表 在这里输入图像说明

我的代码:

private string Excel03ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;HDR={1}'"; [![//Get the name of the First Sheet. using (OleDbConnection con = new OleDbConnection(conStr)) { using (OleDbCommand cmd = new OleDbCommand()) { cmd.Connection = con; con.Open(); DataTable dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); sheetName = dtExcelSchema.Rows\[0\]\["TABLE_NAME"\].ToString(); con.Close(); } } //Read Data from the First Sheet. using (OleDbConnection con = new OleDbConnection(conStr)) { using (OleDbCommand cmd = new OleDbCommand()) { using (OleDbDataAdapter oda = new OleDbDataAdapter()) { cmd.CommandText = "SELECT * From \[" + sheetName + "\]"; cmd.Connection = con; con.Open(); oda.SelectCommand = cmd; oda.Fill(dtExcelData); con.Close(); //Populate DataGridView. //dataGridView1.DataSource = dt; } } } dtExcelData = dtExcelData.AsEnumerable().Skip(2).Take(1).CopyToDataTable(); return dtExcelData;][2]][2] 

在oledbConnection中读取数据后的数据:

在这里输入图像说明

你在Excel表格中有一些合并的单元格,最好是直接访问你的单元格

我想在这里也可以帮助你:

Excel – 使用C#读取.NET中的合并单元(行)

你可以很容易地将这个类用于你的项目。 https://exceldatareader.codeplex.com/