zoukankan      html  css  js  c++  java
  • 用ADO向Excel批量导入数据

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



    参考代码如下

    1. using  System;
    2. using  System.Collections.Generic;
    3. using  System.Text;
    4. using  System.Reflection;
    5. using  Excel = Microsoft.Office.Interop.Excel;
    6. namespace  ConsoleApplication18
    7. {
    8.      class  Program
    9.     {
    10.          static   void  Main( string [] args)
    11.         {
    12.             ExportDataToExcel( "server=(local);uid=sa;pwd=sqlgis;database=master" ,
    13.                  "select * from sysobjects" ,@ "c:/testADO.xls" , "sysobjects" );
    14.         }
    15.          
    16.          static   void  ExportDataToExcel( string  connectionString, string  sql, string  fileName, string  sheetName)
    17.         {
    18.             Excel.Application app =  new  Excel.ApplicationClass();
    19.             Excel.Workbook wb = (Excel.WorkbookClass)app.Workbooks.Add(Missing.Value);
    20.             Excel.Worksheet ws = wb.Worksheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value)  as  Excel.Worksheet;
    21.             ws.Name = sheetName;
    22.              try
    23.             {
    24.                 ADODB.Connection conn =  new  ADODB.ConnectionClass();
    25.                 conn.Open( "driver={SQL Server};" +connectionString, "" , "" ,0);
    26.                 ADODB.Recordset rs =  new  ADODB.RecordsetClass();
    27.                 rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, 0);
    28.                 Excel.Range range = ws.get_Range( "A2" , Missing.Value);
    29.                 range.CopyFromRecordset(rs, 65535, 65535);
    30.             }
    31.              catch  (Exception ex)
    32.             {
    33.                  string  str = ex.Message;
    34.             }
    35.              finally
    36.             {
    37.                 wb.Saved =  true ;
    38.                 wb.SaveCopyAs(fileName); //保存
    39.                 app.Quit(); //关闭进程
    40.             }
    41.         }
    42.     }
    43. }

    相关文章:
    用QueryTable向excel批量导入数据

  • 相关阅读:
    java:数组操作工具类 java.util.Arrays包 主要方法详解
    java:接口特性 接口与抽象类/普通类的区别
    mybatis教程:入门>>精通>>实战
    Java :内部类基础详解
    Java swing: 实现ActionListener监听器的三种途径
    Java:final、static关键字 详解+两者结合使用
    Java:双括号初始化 /匿名内部类初始化法
    Java:静态内部类的使用目的、使用限制、与非静态内部类的对比
    域名解析>>"记录类型" 说明
    Java:接口继承接口 (多继承机制)
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204887.html
Copyright © 2011-2022 走看看