用ADO向Excel批量导入数据

asp.net教程:用ADO向Excel批量导入数据 和前面一篇用OleDB的方法类似,我们可以用ADO从RecordSet对象向Excel批量插入数据,这个方法无法自动复制字段名。

我们需要引用ADO和Excel的com对象

参考代码如下

 

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Reflection;
usingExcel
= Microsoft.Office.Interop.Excel;

namespaceConsoleApplication18
{
  classProgram
  {
    staticvoidMain(
string []args)
    {
      ExportDataToExcel(
" server=(local);uid=sa;pwd=sqlgis;database=master " ,
        
" select*fromsysobjects " , @" c:testADO.xls " , " sysobjects " );
    }
    staticvoidExportDataToExcel(stringconnectionString,stringsql,stringfileName,stringsheetName)
    {
      Excel.Applicationapp
= newExcel.ApplicationClass();
      Excel.Workbookwb
= (Excel.WorkbookClass)app.Workbooks.Add(Missing.Value);
      Excel.Worksheetws
= wb.Worksheets.Add(Missing.Value,Missing.Value,Missing.Value,Missing.Value)asExcel.Worksheet;
      ws.Name
= sheetName;
      
try
      {
        ADODB.Connectionconn
= newADODB.ConnectionClass();
        conn.Open(
" driver={SQLServer}; " + connectionString, "" , "" , 0 );
        ADODB.Recordsetrs
= newADODB.RecordsetClass();
        rs.Open(sql,conn,ADODB.CursorTypeEnum.adOpenStatic,ADODB.LockTypeEnum.adLockReadOnly,
0 );
        Excel.Rangerange
= ws.get_Range( " A2 " ,Missing.Value);
        range.CopyFromRecordset(rs,
65535 , 65535 );
      }
      
catch (Exceptionex)
      {
        stringstr
= ex.Message;
      }
      
finally
      {
        wb.Saved
= true ;
        wb.SaveCopyAs(fileName);
// 保存
        app.Quit(); // 关闭进程
      }
    }
  }
}

 

 

转载于:https://www.cnblogs.com/kevin-top/archive/2010/01/06/1640482.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值