轉:VB6中将数据导出到Excel提速之法

from : http://www.it86.cc/develop/2008/0410/28928.shtml

Excel 是一个非常优秀的报表制作软件,用VBA可以控制其生成优秀的报表,本文通过添加查询语句的方法,即用Excel中的获取外部数据的功能将数据很快地从一个查询语句中捕获到EXCEL中,比起往每个CELL里写数据的方法提高许多倍。

在程序中引用Microsoft Excel 9.0 Object Library,将下文加入到一个模块中,窗体中调用如下ExporToExcel("select * from table")。则实现快速将数据导出到EXCEL中。

 

' *********************************************************
' * 名称:ExporToExcel
' * 功能:导出数据到EXCEL
' * 用法:ExporToExcel(sql查询字符串)
' *********************************************************
Public   Function  ExporToExcel(strOpen  As   String )
    
Dim  Rs_Data  As   New  ADODB.Recordset
    
Dim  Irowcount  As   Integer
    
Dim  Icolcount  As   Integer
    
Dim  xlApp  As   New  Excel.Application
    
Dim  xlBook  As  Excel.Workbook
    
Dim  xlSheet  As  Excel.Worksheet
    
Dim  xlQuery  As  Excel.QueryTable
    
With  Rs_Data
        
If  .State  =  adStateOpen  Then
        .Close
        
End   If
        .ActiveConnection  =  Cn
        .CursorLocation  =  adUseClient
        .CursorType  =  adOpenStatic
        .LockType  =  adLockReadOnly
        .Source  =  strOpen
        .Open
    
End   With
    
With  Rs_Data
    
If  .RecordCount  <   1   Then
        
MsgBox  ( " 没有记录! " )
        
Exit   Function
    
End   If
    
' 记录总数
    Irowcount  =  .RecordCount
    
' 字段总数
    Icolcount  =  .Fields.Count
    
End   With
    
Set  xlApp  =   CreateObject ( " Excel.Application " )
    
Set  xlBook  =   Nothing
    
Set  xlSheet  =   Nothing
    
Set  xlBook  =  xlApp.Workbooks().Add
    
Set  xlSheet  =  xlBook.Worksheets( " sheet1 " )
    xlApp.Visible  =   True
    
' 添加查询语句,导入EXCEL数据
     Set  xlQuery  =  xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range( " a1 " ))
    
With  xlQuery
        .FieldNames  =   True
        .RowNumbers  =   False
        .FillAdjacentFormulas  =   False
        .PreserveFormatting  =   True
        .RefreshOnFileOpen  =   False
        .BackgroundQuery  =   True
        .RefreshStyle  =  xlInsertDeleteCells
        .SavePassword  =   True
        .SaveData  =   True
        .AdjustColumnWidth  =   True
        .RefreshPeriod  =   0
        .PreserveColumnInfo  =   True
    
End   With
    xlQuery.FieldNames  =   True   ' 显示字段名
    xlQuery.Refresh
    
With  xlSheet
        .Range(.Cells( 1 1 ), .Cells( 1 , Icolcount)).Font.Name  =   " 黑体 "
        
' 设标题为黑体字
        .Range(.Cells( 1 1 ), .Cells( 1 , Icolcount)).Font.Bold  =   True
        
' 标题字体加粗
        .Range(.Cells( 1 1 ), .Cells(Irowcount  +   1 , Icolcount)).Borders.LineStyle  =  xlContinuous
        
' 设表格边框样式
     End   With
    
With  xlSheet.PageSetup
        .LeftHeader  =   ""   &   Chr ( 10 &   " &""楷体_GB2312,常规""&10公司名称: "   '  & Gsmc
        .CenterHeader  =   " &""楷体_GB2312,常规""公司人员情况表&""宋体,常规"" "   &   Chr ( 10 &   " &""楷体_GB2312,常规""&10日 期: "
        .RightHeader  =   ""   &   Chr ( 10 &   " &""楷体_GB2312,常规""&10单位: "
        .LeftFooter  =   " &""楷体_GB2312,常规""&10制表人: "
        .CenterFooter  =   " &""楷体_GB2312,常规""&10制表日期: "
        .RightFooter  =   " &""楷体_GB2312,常规""&10第&P页 共&N页 "
    
End   With
    xlApp.Application.Visible  =   True
    
Set  xlApp  =   Nothing   ' "交还控制给Excel
     Set  xlBook  =   Nothing
    
Set  xlSheet  =   Nothing
End Function
' '注::在程序中引用'Microsoft Excel 9.0 Object Library'和ADO对象,机器必装Excel 2000本程序在Windows 98/2000,VB 6 下运行通过。

 

QueryTables

excel querytables

如何使用 Visual Basic .NET 向 Excel 工作簿传输数据

C#导出Excel源码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值