登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 | 信息 | 空间 | VB | VC | Delphi | Java | Flash | 补丁 | 控件 | 安全 | 黑客 | 电子书 | 笔记本 | 手机 | MP3 | 杀毒 | QQ群 | 产品库 | 分类信息 | 编程网站
  立华软件园 - Visual Basic 专区 - 技术文档 - 数据报表 技术文章 | VB源代码 | 电子图书 | VB网站 | 相关下载 | 在线论坛 | QQ群组 | 搜索   
 VB技术文档
  · 窗体界面
  · 系统控制
  · VB.Net
  · 多媒体
  · 网络编程
  · API函数
  · 游戏编程
  · 数据报表
  · 其他文档
 VB源代码
  · 窗体界面
  · 文件目录
  · 多媒体
  · 网络编程
  · 系统API
  · 数据报表
  · 游戏编程
  · VBA办公
  · 其他代码
 VB论坛
  · Visual Basic 讨论区
  · VB.Net 讨论区
  · VB数据库开发讨论区
  · VB系统API讨论区
 其他VB资源
  · VB下载资源
  · VB电子图书
  · VB QQ群组讨论区
  · VB 其他网站资源




Visual Basic 导出到 Excel 提速之法
发表日期:2003-04-03作者:lihonggen0[] 出处:  

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

将下文加入到一个模块中,屏幕中调用如下ExporToExcel("select * from table")则实现将其导出到EXCEL中

Public Function ExporToExcel(strOpen As String)

'*********************************************************

'* 名称:ExporToExcel

'* 功能:导出数据到EXCEL

'* 用法:ExporToExcel(sql查询字符串)

'*********************************************************

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 下运行通过。

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 Visual Basic 导出到 Excel 提速之法

 ■ [欢迎对本文发表评论]
用  户:  匿名发出:
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接  
Copyright ©2001-2006 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00214