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] + "]"); ..... }