Excel表格到多个C#数据表

我正在尝试将Excel电子表格导入到数据表数组中。 每张表格都是电子表格中的一张表格。 现在我看到每个表格都包含来自所有工作表的信息。 我在想这部分工作不正常。

dataSet.Clear(); 

让我知道如果你能看到我做错了什么。

这是其余的代码。

  public DataTable[] ReadDoc() { string filename = @"C:\Documents and Settings\user\Desktop\Test.xlsx"; DataTable dt = null; string connectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=YES\";", filename); OleDbConnection connection = new OleDbConnection(connectionString); DataSet dataSet = new DataSet(); DataSet finalDataSet = new DataSet(); DataTable[] table = new DataTable[3]; connection.Open(); dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt == null) { return null; } String[] excelSheets = new String[dt.Rows.Count]; int i = 0; foreach (DataRow row in dt.Rows) { excelSheets[i] = row["TABLE_NAME"].ToString(); i++; } // Loop through all of the sheets if you want too... for (int j = 0; j < excelSheets.Length; j++) { string query = String.Format("SELECT * FROM [" + excelSheets[j] + "]"); dataSet.Clear(); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString); dataAdapter.Fill(dataSet); table[j] = dataSet.Tables[0]; } return table; } 

谢谢您的帮助。

这里的问题是你的dataSet,被宣布为outsife的for。 每个数据表数组项目获取相同的信息。 dataSet.Tables [0]; 你必须在for内部声明。 每个迭代存储不同的信息。

  for (int j = 0; j < excelSheets.Length; j++) { DataSet dataSet = new DataSet(); string query = String.Format("SELECT * FROM [" + excelSheets[j] + "]"); ..... }