[攒分贴]用ADO向excel批量导入数

jinjazz 2008-08-06 12:12:14
加精
和前面一篇用OleDB的方法类似,我们可以用ADO从RecordSet对象向Excel批量插入数据,这个方法无法自动复制字段名。
我们需要引用ADO和Excel的com对象


参考代码:
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
...全文
1599 62 打赏 收藏 转发到动态 举报
写回复
用AI写文章
62 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyhust2 2008-10-28
  • 打赏
  • 举报
回复
学习一下。
lovecwh 2008-08-27
  • 打赏
  • 举报
回复
好东西,我看看先
yayayii 2008-08-27
  • 打赏
  • 举报
回复
说不清楚!
??
endy001 2008-08-27
  • 打赏
  • 举报
回复
up!!!
jiang_chao 2008-08-25
  • 打赏
  • 举报
回复
学习一下
lppchina 2008-08-24
  • 打赏
  • 举报
回复
不错,顶
runtospring 2008-08-22
  • 打赏
  • 举报
回复
虽然看不懂,但也学习了
fenghgh 2008-08-22
  • 打赏
  • 举报
回复
看了你的
chenzhifeng 2008-08-22
  • 打赏
  • 举报
回复
up
iamflyshine 2008-08-21
  • 打赏
  • 举报
回复
学习中。。
先“另存为”了。。。
^_^
yeah_888 2008-08-21
  • 打赏
  • 举报
回复
谢谢···学习了···
plgo_go 2008-08-21
  • 打赏
  • 举报
回复
了解一下!
ilovewalk 2008-08-21
  • 打赏
  • 举报
回复
mark.
herozwh1979 2008-08-20
  • 打赏
  • 举报
回复
学习!
cnfeng 2008-08-19
  • 打赏
  • 举报
回复
路过, 看后有点晕
zincy 2008-08-19
  • 打赏
  • 举报
回复
pp
laoniu1985 2008-08-19
  • 打赏
  • 举报
回复
收藏了
civn123 2008-08-19
  • 打赏
  • 举报
回复
tag
luckyboy101 2008-08-18
  • 打赏
  • 举报
回复
不错
castlooo 2008-08-18
  • 打赏
  • 举报
回复
收藏
加载更多回复(40)

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧