EXCEL导入GridView,然后再汇入数据库.
来源:互联网 发布:淘宝如何设置降价宝贝 编辑:程序博客网 时间:2024/04/25 15:28
导读:
近日项目中有一个多笔料号要输入,我做了一个用javascript复制输入框的功能,可以输入多笔料号。
但是使用者反馈,料号太多,可能几百个料号在EXCEL文件里,这样输入很慢,需要增加功能。于是想到了SQLSERVER导入EXCEL的功能。
declare @strExcelName varchar(50)
set @strExcelName='c:/sl.xls'
exec('select * into ##tmp from openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=No;IMEX=1;DATABASE='+@strExcelName+'',[Sheet1$]) ')
select * from ##tmp
这样是可以导入数据,但是问题来了。我的数据库服务器和运行程序服务器不在同一服务器,无法导入(可能有方法,但是项目紧,没时间去探索),于是想到另外一个方法:先上传EXCEL文件,然后读入DATASET放入GridView,然后从GridView提交到数据库,这样就没有问题。
文件上传控件:
Form里不需要enctype="multipart/form-data"
文件上传代码:
if (myFile.PostedFile.FileName != "")
{
//上传文件的绝对路径
string sFile = myFile.PostedFile.FileName;
//获取文件全名
sFile = sFile.Substring(sFile.LastIndexOf("//") + 1);
//获取后缀名
sFile = sFile.Substring(sFile.LastIndexOf("."));
if (sFile.ToLower() != ".xls")
{
Response.Write("请选择Excel文件!");
Response.End();
}
//为了防止重名,获得日期为文件名年月日时分秒毫秒
string datatime = System.DateTime.Now.ToString("yyyMMddHHmmssffff");
//上传后文件的新名
sFile = datatime + sFile;
//AppDomain.CurrentDomain.BaseDirectory.ToString() 获取此项目的根目录
//sPath 获取上传后的路径
string sPath = AppDomain.CurrentDomain.BaseDirectory.ToString() + "ExcelFiles//" + sFile;
//上传文件
myFile.PostedFile.SaveAs(sPath);
this.myGridView.DataSource = GetExcelContent(sPath);
this.myGridView.DataBind();
}
读取EXCEL到DATASET代码:
private DataSet GetExcelContent(string filepath)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + "Extended Properties='Excel 8.0;HDR=No;IMEX=1'"
System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
string strCom = "SELECT F1 as resno,F2 as resname FROM [Sheet1$]"
myConn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);
//创建一个DataSet对象
DataSet myDataSet = new DataSet();
//得到自己的DataSet对象
myCommand.Fill(myDataSet);
//关闭此数据链接
myConn.Close();
return myDataSet;
}
最后是数据提交到数据库代码:
string stresno = ""
string stresname = ""
foreach (GridViewRow row in this.myGridView.Rows)
{
Label txtesno = (Label)row.FindControl("labresno");
stresno += txtesno.Text.ToString().Trim().Replace("'", "'") + ""
Label txtresname = (Label)row.FindControl("labresname");
stresname += txtresname.Text.ToString().Trim().Replace("'", "'") + ""
}
Response.Write(stresno + "
" + stresname);
Response.End();
本文转自
http://www.cnblogs.com/cnaspnet/archive/2007/08/21/863680.html
近日项目中有一个多笔料号要输入,我做了一个用javascript复制输入框的功能,可以输入多笔料号。
但是使用者反馈,料号太多,可能几百个料号在EXCEL文件里,这样输入很慢,需要增加功能。于是想到了SQLSERVER导入EXCEL的功能。
declare @strExcelName varchar(50)
set @strExcelName='c:/sl.xls'
exec('select * into ##tmp from openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=No;IMEX=1;DATABASE='+@strExcelName+'',[Sheet1$]) ')
select * from ##tmp
这样是可以导入数据,但是问题来了。我的数据库服务器和运行程序服务器不在同一服务器,无法导入(可能有方法,但是项目紧,没时间去探索),于是想到另外一个方法:先上传EXCEL文件,然后读入DATASET放入GridView,然后从GridView提交到数据库,这样就没有问题。
文件上传控件:
Form里不需要enctype="multipart/form-data"
文件上传代码:
if (myFile.PostedFile.FileName != "")
{
//上传文件的绝对路径
string sFile = myFile.PostedFile.FileName;
//获取文件全名
sFile = sFile.Substring(sFile.LastIndexOf("//") + 1);
//获取后缀名
sFile = sFile.Substring(sFile.LastIndexOf("."));
if (sFile.ToLower() != ".xls")
{
Response.Write("请选择Excel文件!");
Response.End();
}
//为了防止重名,获得日期为文件名年月日时分秒毫秒
string datatime = System.DateTime.Now.ToString("yyyMMddHHmmssffff");
//上传后文件的新名
sFile = datatime + sFile;
//AppDomain.CurrentDomain.BaseDirectory.ToString() 获取此项目的根目录
//sPath 获取上传后的路径
string sPath = AppDomain.CurrentDomain.BaseDirectory.ToString() + "ExcelFiles//" + sFile;
//上传文件
myFile.PostedFile.SaveAs(sPath);
this.myGridView.DataSource = GetExcelContent(sPath);
this.myGridView.DataBind();
}
读取EXCEL到DATASET代码:
private DataSet GetExcelContent(string filepath)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + "Extended Properties='Excel 8.0;HDR=No;IMEX=1'"
System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
string strCom = "SELECT F1 as resno,F2 as resname FROM [Sheet1$]"
myConn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);
//创建一个DataSet对象
DataSet myDataSet = new DataSet();
//得到自己的DataSet对象
myCommand.Fill(myDataSet);
//关闭此数据链接
myConn.Close();
return myDataSet;
}
最后是数据提交到数据库代码:
string stresno = ""
string stresname = ""
foreach (GridViewRow row in this.myGridView.Rows)
{
Label txtesno = (Label)row.FindControl("labresno");
stresno += txtesno.Text.ToString().Trim().Replace("'", "'") + ""
Label txtresname = (Label)row.FindControl("labresname");
stresname += txtresname.Text.ToString().Trim().Replace("'", "'") + ""
}
Response.Write(stresno + "
" + stresname);
Response.End();
本文转自
http://www.cnblogs.com/cnaspnet/archive/2007/08/21/863680.html
- EXCEL导入GridView,然后再汇入数据库.
- 将Excel导入DataSet中预处理,然后再导入数据库
- 把Excel中的数据导入gridView显示,再导入数据库
- Excel导入Dataset 然后插入数据库
- 从数据库sql数据到gridview然后导成excel
- 将excel中数据显示在页面上,然后再导入到SqlServer数据库中
- 从Excel导入到GridView,导入到数据库
- 求教。将Excel文件导入DataTable中,然后绑定到GridView中。
- GridView导入excel中
- GridView数据导入Excel
- GridView 导入Excel
- 导入Excel到GridView
- 将Gridview导入Excel
- excel 导入到gridview
- gridview导入到excel
- GridView数据导入Excel
- Excel 导入 Gridview
- asp.net gridview导入excel
- MYSQL limit的优化
- 存储过程分页
- LCS算法
- java介绍
- 关于Zend Studio 无法用GD库的经验
- EXCEL导入GridView,然后再汇入数据库.
- 框架不是框框—应用框架的基本思想
- Web开发的几个必备工具
- C++虚函数表解析
- WCF百度百科
- GridView数据导入Excel/Excel数据读入GridView
- 奥运期间极端气象条件下污染控制措施公布
- redhat linux浙江总代 微软 防病毒
- LINQ体验(2)——C# 3.0新语言特性和改进(上篇)