请问在asp.net中如何获得Excel工作表名?
gdlpc 2009-10-28 09:58:35 我这样连接Excel表:
try
{
string filepath = Server.MapPath("test.xls");
String strConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1'", filepath);
OleDbConnection Excel_conn = new OleDbConnection(strConnectionString);
string query = "SELECT * FROM [Sheet1$]";
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query, Excel_conn);
DataSet myDataSet = new DataSet();
Excel_conn.Open();
oleAdapter.Fill(myDataSet, "Excel_Sheet1");
Excel_conn.Close();
}
catch (Exception ex)
{
Label1.Text = ex.Message;
}
如果test.xls的第一个工作表名称是Sheet1时,运行正常。
如果test.xls的第一个工作表名称是asdfg时,出现错误:'Sheet1$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。且不能释放系统资源:文件“test.xls”正由另一进程使用,因此该进程无法访问该文件。
这时不能修改删除test.xls表,要重启系统后才能修改或删除。
请问:
1、如何在连接Excel表是首选取得工作表名,使不同的工作表名也能正常运行不会出错?
2、如果出错应如何完全释放系统资源,可以使用另一个工作表?