excel处理大量数据大批量复制

特别注意& sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName,&dt.Columns[i].ColumnName);
插入的时候列的顺序可以不一致,但名称和数据类型最好要保存一致。不一致时候,也能进行正确的转换,除了比如DataTime数据类型,不能插入一个无效的string时间字符串。
本文转载:
几种数据库的大数据批量插入
这篇文章不错通过xml配置映射关系:
&用途说明:
前些日子,公司要求做一个数据导入程序,要求将Excel数据,大批量的导入到数据库中,尽量少的访问数据库,高性能的对数据库进行存储。于是在网上进行查找,发现了一个比较好的解决方案,就是采用SqlBulkCopy来处理存储数据。SqlBulkCopy存储大批量的数据非常的高效,就像这个方法的名字一样,可以将内存中的数据表直接的一次性的存储到数据库中,而不需要一次一次的向数据库Insert数据。初次实验,百万级别的数据表,也只需几秒时间内就可以完全的存入数据库中,其速度,比传统的Insert方法不止快很多倍
&&&&&& MSDN摘要:Microsoft SQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表既可以在同一个服务器上,也可以在不同服务器上)。SqlBulkCopy 类允许编写提供类似功能的托管代码解决方案。还有其他将数据加载到 SQL Server 表的方法(例如 INSERT 语句),但相比之下 SqlBulkCopy 提供明显的性能优势。
使用 SqlBulkCopy 类只能向 SQL Server 表写入数据。但是,数据源不限于 SQL Server;可以使用任何数据源,只要数据可加载到
实例或可使用
实例读取数据。
/// &summary&&&&&&&& /// &&&&&&& /// &/summary&&&&&&&& /// &param name="connectionString"&目标连接字符&/param&&&&&&&& /// &param name="TableName"&目标表&/param&&&&&&&& /// &param name="dt"&源数据&/param&&&&&&&& private void SqlBulkCopyByDatatable(string connectionString, string TableName, DataTable dt)&&&&&&& {&&&&&&&&&&& using (SqlConnection conn = new SqlConnection(connectionString))&&&&&&&&&&& {&&&&&&&&&&&&&&& using (SqlBulkCopy sqlbulkcopy =new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&& try&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&& sqlbulkcopy.DestinationTableName = TableN&&&&&&&&&&&&&&&&&&&&&&& for (int i = 0; i & dt.Columns.C i++)&&&&&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&&&&& sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);&&&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&&&&& sqlbulkcopy.WriteToServer(dt);&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&& catch (System.Exception ex)&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& }&&&&&&&&&&& }&&&&&&& }
SqlBulkCopy使用使用用于自定义表类型作为存储过程参数,批量写入数据。&  如果,大家使用SQL Server 2008,它提供一个新的功能表变量(Table Parameters)可以将整个表数据汇集成一个参数传递给存储过程或SQL语句。它的注意性能开销是将数据汇集成参数(O(数据量))。&  现在,我们修改之前的代码,在SQL Server中定义我们的表变量,具体定义如下:&-- =============================================-- Author:&&&&&&& JKhuang-- Create date: 08/16/2012-- Description:&&& Declares a user table paramter.-- =============================================CREATE TYPE jk_users_bulk_insert AS TABLE (&&& user_login varchar(60),&&& user_pass varchar(64),&&& user_nicename varchar(50),&&& user_email varchar(100),&&& user_url varchar(100),&&& user_activation_key varchar(60),&&& user_status int,&&& display_name varchar(250))&  上面,我们定义了一个表参数jk_users_bulk_insert,接着我们定义一个存储过程接受表参数jk_users_bulk_insert,具体定义如下:&-- =============================================-- Author:&&&&&&& JKhuang-- Create date: 08/16/2012-- Description:&&& Creates a stored procedure, receive-- a jk_users_bulk_insert argument.-- =============================================CREATE PROCEDURE sp_insert_jk_users @usersTable jk_users_bulk_insert READONLY ASINSERT INTO jk_users (user_login, user_pass, user_nicename, user_email, user_url, user_activation_key, user_status, display_name, user_registered) SELECT user_login, user_pass, user_nicename, user_email, user_url, user_activation_key, user_status, display_name, GETDATE() FROM @usersTable   接下我们在客户端代码中,调用存储过程并且将表作为参数方式传递给存储过程。&var sw = Stopwatch.StartNew();using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLCONN2"].ToString())){&&& conn.Open();&&& //// Invokes the stored procedure.&&& using (var cmd = new SqlCommand("sp_insert_jk_users", conn))&&& {&&&&&&& mandType = CommandType.StoredP&&&&&&& //// Adding a "structured" parameter allows you to insert tons of data with low overhead&&&&&&& var param = new SqlParameter("@userTable", SqlDbType.Structured) { Value = dt };&&&&&&& cmd.Parameters.Add(param);&&&&&&& cmd.ExecuteNonQuery();&&& }}sw.Stop();   现在,我们重新执行写入操作发现写入效率与SqlBulkCopy相当。
阅读(...) 评论()新闻资讯NewsCenter
Excel技巧Excel>>>>
Excel表格的基本操作十:快速复制粘贴
&&&&& 如果你有心想学整套的Excel教程,笔者推荐你看Excel表格的基本操作视频教程。如果你想学的只是Excel表格的基本操作,那么笔者推荐你使用金山WPS2012。因为普通用户用到的Excel表格的基本操作功能,WPS2012表格也有。并且WPS2012内置成千上万套现成的表格模板,更适合国内用户使用。因此笔者的Excel表格的基本操作教程将以WPS2012为例来介绍。
&&&&& Excel表格的基本操作十:快速复制粘贴
&&&&& 当你在输入数据中,如果需要输入1、2、3&&这样按顺序的数字的时候,一个一个输入,太麻烦了,想省点功夫,是否有法?有的,只要使用鼠标一拖,就完事了。选中一个或一些数据,然后把光标移到选中框的右下角,光标变成一个加号的时候,向下拖动,就会智能帮你填1、2、3&&了。(温馨提示,这个一拖的功能还有格式刷的作用。)
&&&&& 相关阅读
版权所有 (C)
武汉荣昌仁和会计咨询服务有限公司 电话:027-&&鄂ICP备号-11、编辑——移动或复制工作表
2、在对话框里“下列选定工作表之前”下面选定你要复制到工作表(比如sheet1),
3、选中“建立副本”
4、确定,这时,在工作簿中出现新的工作表sheet1(2),该工作表就是sheet1的复制品。
重复上述操作,可以在同一个工作簿里多次复制某一个工作表。
其他答案(共1个回答)
TRL+A,对表格进行全选,再CTRL+C复制,切换到想要粘贴的工作表,按CTRL+V就OK了
没有完全理解您的提问《excel如何大量复制工作表》的意思?
猜摸着回答,供参考。
快速插入(复制)工作表方法:
工具栏——插入——工作表。
...
按下“Ctrl+Tab”可在打开的工作簿间切换
将两个文件都打开,选定你要复制的工作表,假定这个工作表的名称为sheet1,将鼠标移动到sheet1上,右键单击--移动或复制工作表--看到“将选定工作表移至”...
有两个方法可以在工作薄中选择工作表,快捷键ctrl+pgup(或pgup),选择相临的工作表。或者在左下角箭头上点击右键,选择需要的工作表即可。
#芜湖世茂希尔顿逸林酒店#网站上写的夏日惠享7.5折是指网站上的挂价再打7.5折吗?
答: 好在有许多成熟的安全和网络技术,例如虚拟私有网络(VPN)和防火墙等,能够极大地提高Web服务应用的安全和性能,让开发者拥有选择安全技术的自由,而不是非得使用尚...
答: 某些ADSL调制解调器使用USB接口与电脑相连,需要在电脑上安装指定的软件以添加虚拟网卡来进行通信
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区

我要回帖

更多关于 excel复制多个单元格 的文章

 

随机推荐