• 用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批量导入数据

  • 相关阅读:
    postman 调试接口报“401 身份认证信息未提供”错误
    UserWarning: XXX is writable by group/others and vulnerable to attack when used with get_resource_filename.
    以root权限执行python时候脚本时候报错“ExtractionError: Can't extract file(s) to egg cache”
    django接口调试示例说明
    查看linux系统版本、内存、CPU、存储容量
    一次批量杀死多个进程
    bash:pybot未找到命令
    Swoft-Api项目部署九:前、后置中间件
    Swoft-Api项目部署八:主从数据库配置
    Swoft-Api项目部署七:验证器
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204887.html
Copyright © 2020-2023  润新知