用打开数据的方式打开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.
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.
解决方案 »
- MS SQL 能存储 多少数据量
- using和namespace 的顺序,有区别吗
- 如何用js全选checkbox?
- 关于网络通信程序的系统结构方案?
- 如何让嵌套在repeater里的repeater触发事件dataitembound?下这样却不行?为什么,如何解决,高手!
- 如何跟据DataList中HyperLink的显示值来改变Button的Text值?
- 大问题~~~~~~大问题~~~~~~~急啊
- 求一条关于插入id+1的sql语句
- 如何使PictureBox控件透明,以便能看到下一层的图形?
- 当前在线用户列表
- Knockout日期时间绑定问题
- 各位大神,求指教,asp.net怎么设计这样的aspx页面,取值是后台取值,按条件查询
不过uploadfile控件有个filestream(好像是这个,好像是uoloadstream),这个属性可以使用。
con.Close();
DataTable dt= ds.Tables[0];