积极答复者
各位朋友,如何实现多张Excel表的查询统计?

问题
答案
-
你好!
DataSet是支持多张表的,可以像访问其他数据一样来访问excel:
把Excel数据读入DataTable
public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" +"Extended Properties=Excel 5.0;";
string strExcel = string.Format("select * from [{0}$]", strSheetName);
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();
}
return ds.Tables[strSheetName];
}
周雪峰- 已标记为答案 KeFang Chen 2010年4月28日 2:19
全部回复
-
你好!
DataSet是支持多张表的,可以像访问其他数据一样来访问excel:
把Excel数据读入DataTable
public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" +"Extended Properties=Excel 5.0;";
string strExcel = string.Format("select * from [{0}$]", strSheetName);
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();
}
return ds.Tables[strSheetName];
}
周雪峰- 已标记为答案 KeFang Chen 2010年4月28日 2:19
-
学习了,我以前倒没想到excell可以如数据库一样来访问。看到问题,不妨再多说几句,DataSet包含了多个DataTable,而其实每张表又可以看做是一个dataTable。可将每个excell放在一个dataTable里面,如:
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel1, strConn);
adapter.Fill(ds[0], strSheetName1);adapter = new OleDbDataAdapter(strExcel2, strConn);
adapter.Fill(ds[1],strSheetName2);
conn.Close();之后使用DataSet的Merge函数,设置相应参数,就可以实现合并了。
- 已编辑 络绎 2010年4月28日 9:59 Update some errors
-
学习了,我以前倒没想到excell可以如数据库一样来访问。看到问题,不妨再多说几句,DataSet包含了多个DataTable,而其实每张表又可以看做是一个dataTable。可将每个excell放在一个dataTable里面,如:
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel1, strConn);
adapter.Fill(ds[0], strSheetName1);adapter = new OleDbDataAdapter(strExcel2, strConn);
adapter.Fill(ds[1],strSheetName2);
conn.Close();之后使用DataSet的Merge函数,设置相应参数,就可以实现合并了。
客气了啊!大家互相交流啊!
周雪峰