在我们开发各类应用型系统,经常会遇到导入导出Excel,为什么会用到他呢?
企业或者单位在从无信息化到信息化的一个转变过程。
在没有信息化的企业或单位之前,一般都采用Excel来记录相应的数据,做统计计算的作用,那么当企业或单位实施信息化之后必然会将原有数据导入到系统中去存储与分析。那么作为程序员就必然面临一个将数据导入数据库的功能,下面针对此类情况作如下概述。
在ASP.NET的B/S架构下,去导入Excel。
举例来说:
我们需要导入员工信息表到数据库中。Excel格式如下:
那么在我们了解了这个之后,下面就是在ASP.NET中通过button来触发导入事件的发生。
protected void btnChange_Click(object sender, EventArgs e)
{
UserInfoClass tClass = (UserInfoClass)Session["UserInfo"];
string tLanguageType = tClass.Language;
//获取文件路径
string filePath = this.file1.PostedFile.FileName;
if (filePath != "")
{
if (filePath.Contains("xls"))//判断文件是否存在
{
InputExcel(filePath);
}
else
{
MessageBox.Show("请检查您选择的文件是否为Excel文件!谢谢!");
}
}
else
{
MessageBox.Show("请先选择导入文件后,再执行导入!谢谢!");
}
}
private void InputExcel(string pPath)
{
string conn = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + pPath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
OleDbConnection oleCon = new OleDbConnection(conn);
oleCon.Open();
string Sql = "select * from [Sheet1$]";
OleDbDataAdapter mycommand = new OleDbDataAdapter(Sql, oleCon);
DataSet ds = new DataSet();
mycommand.Fill(ds, "[Sheet1$]");
oleCon.Close();
int count = ds.Tables["[Sheet1$]"].Rows.Count;
for (int i = 0; i < count; i++)
{
string tUserID, tUserName, tDept, tEmail, tLeader, tAngent;
tUserID = ds.Tables["[Sheet1$]"].Rows[i]["員工代號"].ToString().Trim();
tUserName = ds.Tables["[Sheet1$]"].Rows[i]["員工姓名"].ToString().Trim();
tDept = ds.Tables["[Sheet1$]"].Rows[i]["所屬部門代號"].ToString().Trim();
tEmail= ds.Tables["[Sheet1$]"].Rows[i]["E-Mail Address"].ToString().Trim();
tLeader = ds.Tables["[Sheet1$]"].Rows[i]["直属主管"].ToString().Trim();
tAngent = ds.Tables["[Sheet1$]"].Rows[i]["代理人"].ToString().Trim();
string excelsql = "insert into " + this.UserInfo.Company + "..[resak] (resak001, resak002, resak015,resak005,resak013,resak009) values ('" + tUserID + "','" + tUserName + "','"
+ tDept + "','" + tEmail + "','" + tLeader + "','" + tAngent + "')";
DBCommand cmd = DscDBData.GetDataDBCommand();
cmd.ExeNonQuery(excelsql);
}
}
当然此部分内容拿过来要稍作修改,比如最后的执行Insert语句的部分,等内容。
上面完成了ASP.NET下导入Excel到数据库的功能。
接下来如果你希望直接将Excel在SQL语句中导入到数据库,实现方式如下:
SELECT * INTO PURTC
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\12.xls',sheet1$)
注意将Excel中的栏位与表中栏位对应Ok的话,即可!
相关推荐
将Excel中的数据导入到SqlServer中的实现方法总结。还有一个简单的例子
本文实例讲述了C#实现Excel表数据导入Sql Server数据库中的方法。分享给大家供大家参考,具体如下: Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1、首先,我们要先在test数据库中新建一...
在这个例子中,我们将使用windows验证连接到本地SQL Server实例,所使用的数据库将是ImportExcel。 在Specify Table Copy or Query(指定表复制或查询)向导界面中,选择copy data from one or more tables or ...
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于...
涉及安装和配置SQL Server、日期处理、字符处理、排序规则、编号处理、数据统计与汇总、分页处理、树形数据处理、数据导入与导出、作业、数据备份与还原、用户定义数据类型、数据库安全、系统表应用实例、SQL Server...
sqlserver调用OPENROWSET的方法[参照].pdf
SQL SERVER2005下不能使用OpenRowset创建链接服务器的问题
在SQL Server中使用XML数据来创建计算列,你的列定义必须包含必要的用来检测向列中插入的是什么数据的表达式。 使用XML在SQL Server上创建计算列(上) 使用XML在SQL Server上创建计算列(下) SQL Server中...
如果是在SQL Server数据库之间进行数据导入导出时,并且不需要对数据进行复杂的检验,最好使用Transact-SQL方法进行处理,因为在SQL Server数据库之间进行数据操作时,SQL是非常快的。当然,如果要进行复杂的操作,如...
Office数据库升迁 Access 导入 SQL Server,相信大家都知道 SQL-Server 数据库导入导出功能吧,但当你装了精简版的SQL-Server这个功能就会没有了,也就是无法实现数据库导入导出,那么怎么办 写SQL语句? Insert ...
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries'2009年08月28日 星期五 15:00SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此...
exec sp_configure ‘show advanced options’,1 reconfigure exec sp_configure ‘Ad Hoc Distributed Queries’,1 reconfigure SELECT * INTO tmp_asset FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’, ‘Excel ...
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于...
在SQL SERVER中直接访问EXCEL 文件。
10.4 理解SQLCLR及SQL Server中的.NET编程 10.5 创建聚集函数 10.6 自定义数据类型 10.7 小结 第11章 事务和锁 11.1 事务 11.2 SQL Server日志的工作方式 11.3 锁和并发 11.4 设置隔离级别 ...
10.4 理解SQLCLR及SQL Server中的.NET编程 10.5 创建聚集函数 10.6 自定义数据类型 10.7 小结 第11章 事务和锁 11.1 事务 11.2 SQL Server日志的工作方式 11.3 锁和并发 11.4 设置隔离级别 ...
结合在ASP.NET中使用Linq to Sql,我们可以非常方便地将XML文件存储到SQL Server数据库中。但是在默认情况下,如果你存储的XML文件比较大(超过2MB),在SQL Server管理器中不能直接点击查看XML内容而报以下错误提示...
以后不再使用时删除链接服务器 exec sp_dropserver '链接名', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) --1、openrowset --查询示例 select * from openrowset( 'SQLOLEDB ', '...
不用编程实现excel表引入sql库的sql语句(前提是sql库上要装有excel)SELECT * INTO YourTableName FROM OPENROWSET(‘MSDASQL.1‘, ‘driver=Microsoft Excel Driver (*.xls);DBQ=e:tempbook2.xls‘,‘select * from ...