用打开数据的方式打开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.