和前面一篇用OleDB的方法类似,我们可以用ADO从RecordSet对象向Excel批量插入数据,这个方法无法自动复制字段名。
我们需要引用ADO和Excel的com对象
参考代码:
C# code
<!---->using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using Excel = Microsoft.Office.Interop.Excel;
namespace ConsoleApplication18
{
class Program
{
static void Main(string[] args)
{
ExportDataToExcel("server=(local);uid=sa;pwd=sqlgis;database=master",
"select * from sysobjects",@"c:\testADO.xls","sysobjects");
}
static void ExportDataToExcel(string connectionString,string sql,string fileName,string sheetName)
{
Excel.Application app = new Excel.ApplicationClass();
Excel.Workbook wb = (Excel.WorkbookClass)app.Workbooks.Add(Missing.Value);
Excel.Worksheet ws = wb.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Excel.Worksheet;
ws.Name = sheetName;
try
{
ADODB.Connection conn = new ADODB.ConnectionClass();
conn.Open("driver={SQL Server};"+connectionString,"","",0);
ADODB.Recordset rs = new ADODB.RecordsetClass();
rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, 0);
Excel.Range range = ws.get_Range("A2", Missing.Value);
range.CopyFromRecordset(rs, 65535, 65535);
}
catch (Exception ex)
{
string str = ex.Message;
}
finally
{
wb.Saved = true;
wb.SaveCopyAs(fileName);//保存
app.Quit();//关闭进程
}
}
}
}
Blog同步更新
http://blog.csdn.net/jinjazz/archive/2008/08/06/2775725.aspx
我的历史攒分帖子
http://blog.csdn.net/jinjazz/category/407229.aspx
希望大家支持我的blog
分享到:
相关推荐
利用ADO将EXCEL批量导入至ACCESS中,希望对大家有所助益
计算机软件-商业源码-利用ADO将EXCEL批量导入至ACCESS中.zip
用EXCEL批量导入数据库 , 经过测试的, 没有 问题!!
我之前做excel导出的时候,效率很差,尤其是数据量达到上万条的时候,要等上将近20分钟了。后来努力下,找到了简单的导出方法,几千条数据,用了不到1分钟,就轻松导出了。下面是思路和源码,供大家参考
1.通过获取Excel对象,然后使用Excel的QueryTable方法生成数据到Excel表指定位置,速度比较快 2.通过连接Access创建选择集,然后将选择集批量插入Excel指定位置,速度比较快 3.通过连接Excel表,将Excel表作为...
EXCEL数据高级查询摘要 EXCEL 对批量数据的多次重复或相似的统计和交叉性集合运算操作比较困难或效率不高 而使用 Visual Basic 开发平台利用ADO 数据库连接和操作技术可以很好的解决这样的问题 提高 EXCEL 文件数据...
5、本系统可批量导入试题,但asp的ADO读取EXCEL数据时同一列数据遇到不同数据类型时中断,并不是以空记录中断,填写导入的EXCEL时请保持相同的数据类型;遇到此问题时可以用ACCESS软件打开数据库,然后在“文件”-...
5、本系统可批量导入试题,但asp的ADO读取EXCEL数据时同一列数据遇到不同数据类型时中断,并不是以空记录中断,填写导入的EXCEL时请保持相同的数据类型;遇到此问题时可以用ACCESS软件打开数据库,然后在“文件”-...
5、本系统可批量导入试题,但asp的ADO读取EXCEL数据时同一列数据遇到不同数据类型时中断,并不是以空记录中断,填写导入的EXCEL时请保持相同的数据类型;遇到此问题时可以用ACCESS软件打开数据库,然后在“文件”-...
5、本系统可批量导入试题,但asp的ADO读取EXCEL数据时同一列数据遇到不同数据类型时中断,并不是以空记录中断,填写导入的EXCEL时请保持相同的数据类型;遇到此问题时可以用ACCESS软件打开数据库,然后在“文件”-...
5、本系统可批量导入试题,但asp的ADO读取EXCEL数据时同一列数据遇到不同数据类型时中断,并不是以空记录中断,填写导入的EXCEL时请保持相同的数据类型;遇到此问题时可以用ACCESS软件打开数据库,然后在“文件”-...
本系统使用Visual C++6.0作为开发工具,使用SQL Server2000作为数据库服务器,利用ADO技术进行数据库连接,并基于COM组件完成excel文档的导入导出,简化了报表自动生成的流程。 摘要 I ABSTRACT II 目录 IV 第一章 ...
3.2 使用DAO还是ADO 58 3.3 小 结 60 第4章 使用Access集合 61 4.1 创建定制的集合 61 4.1.1 定义新集合 62 4.1.2 添加集合元素 62 4.1.3 删除集合元素 63 4.2 比较定制的集合和数组 64 4.2.1 创建...
3.2 使用DAO还是ADO 58 3.3 小 结 60 第4章 使用Access集合 61 4.1 创建定制的集合 61 4.1.1 定义新集合 62 4.1.2 添加集合元素 62 4.1.3 删除集合元素 63 4.2 比较定制的集合和数组 64 4.2.1 创建整数集合 ...
实例140 将access数据库导入excel文件中 第13章 水晶报表与打印 实例141 设计带有背景图的水晶报表 实例142 设置水晶报表的打印日期与时间 实例143 设置水晶报表中节的背景图片 实例144 打印窗体中的数据 实例145 ...
1517.3.2 链接Excel工作表 1567.4 使用Microsoft Outlook和Exchange 文件夹 1567.4.1 用Outlook导出和导入Jet 4.0表 1577.4.2 使用Exchange/Outlook向导的链接 1597.5 导入文本文件 1607.5.1 使用导入文本向导 1617....
1517.3.2 链接Excel工作表 1567.4 使用Microsoft Outlook和Exchange 文件夹 1567.4.1 用Outlook导出和导入Jet 4.0表 1577.4.2 使用Exchange/Outlook向导的链接 1597.5 导入文本文件 1607.5.1 使用导入文本向导 1617....