请教excel表的问题
okcat 2017-07-25 03:14:57 用打开数据的方式打开excel表,并存到datatable中,代码如下:
//类
public class classexcel
{
public DataTable getdatatable_excel(string excel_name)
{
string sheet_name;
//以打开数据库的方式打开EXCEL表
string strCon = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + excel_name + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
OleDbConnection con = new OleDbConnection(strCon);
con.Open();
//获得EXCEL表的第一个SHEET名称
sheet_name = con.GetSchema("tables").Rows[0]["TABLE_NAME"].ToString().ToLower();
//得到EXCEL表的数据,保存为datatable
OleDbDataAdapter da = new OleDbDataAdapter("select * from [" + sheet_name + "]", con);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt= ds.Tables[0];
return dt;
}
}
//将用户选择的文件保存到服务器端
fn = System.IO.Path.GetFileName(uploadFile.PostedFile.FileName);
file_path = Server.MapPath("files/") + fn;
uploadFile.PostedFile.SaveAs(file_path);
//实例化该类,打开excel表,并对该表进行操作
classexcel myexcel = new classexcel();
dt = myexcel.getdatatable_excel(file_path);
对该表进行操作时出现报错。终止该网页,再次将用户选择的文件保存到服务器端时,由于上次操作时出错没有关闭EXCEL表,所以提示 :文件“E:\djsxzb\files\信息物流中心检斤党支部执行力指数指标任务.xls”正由另一进程使用,因此该进程无法访问此文件。报错位置指向该句:uploadFile.PostedFile.SaveAs(file_path)
求教怎样在操作EXCEL出错时关闭它。是以数据库方式打开并存入DATATABLE.