分享
 
 
 

将记录集输出到 Excel 模板

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

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

'** 函数名称: ExportTempletToExcel

'** 函数功能: 将记录集输出到 Excel 模板

'** 参数说明:

'** strExcelFile 要保存的 Excel 文件

'** strSQL 查询语句,就是要导出哪些内容

'** strSheetName 工作表名称

'** adoConn 已经打开的数据库连接

'** 函数返回:

'** Boolean 类型

'** True 成功导出模板

'** False 失败

'** 参考实例:

'** Call ExportTempletToExcel("c:\text.xls","查询语句","工作表1",adoConn)

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

Private Function ExportTempletToExcel(ByVal strExcelFile As String, _

ByVal strSQL As String, _

ByVal strSheetName As String, _

ByVal adoConn As Object) As Boolean

Dim adoRt As Object

Dim lngRecordCount As Long ' 记录数

Dim intFieldCount As Integer ' 字段数

Dim strFields As String ' 所有字段名

Dim i As Integer

Dim exlApplication As Object ' Excel 实例

Dim exlBook As Object ' Excel 工作区

Dim exlSheet As Object ' Excel 当前要操作的工作表

On Error GoTo LocalErr

Me.MousePointer = vbHourglass

'// 创建 ADO 记录集对象

Set adoRt = CreateObject("ADODB.Recordset")

With adoRt

.ActiveConnection = adoConn

.CursorLocation = 3 'adUseClient

.CursorType = 3 'adOpenStatic

.LockType = 1 'adLockReadOnly

.Source = strSQL

.Open

If .EOF And .BOF Then

ExportTempletToExcel = False

Else

'// 取得记录总数,+ 1 是表示还有一行字段名名称信息

lngRecordCount = .RecordCount + 1

intFieldCount = .Fields.Count - 1

For i = 0 To intFieldCount

'// 生成字段名信息(vbTab 在 Excel 里表示每个单元格之间的间隔)

strFields = strFields & .Fields(i).Name & vbTab

Next

'// 去掉最后一个 vbTab 制表符

strFields = Left$(strFields, Len(strFields) - Len(vbTab))

'// 创建Excel实例

Set exlApplication = CreateObject("Excel.Application")

'// 增加一个工作区

Set exlBook = exlApplication.Workbooks.Add

'// 设置当前工作区为第一个工作表(默认会有3个)

Set exlSheet = exlBook.Worksheets(1)

'// 将第一个工作表改成指定的名称

exlSheet.Name = strSheetName

'// 清除“剪切板”

Clipboard.Clear

'// 将字段名称复制到“剪切板”

Clipboard.SetText strFields

'// 选中A1单元格

exlSheet.Range("A1").Select

'// 粘贴字段名称

exlSheet.Paste

'// 从A2开始复制记录集

exlSheet.Range("A2").CopyFromRecordset adoRt

'// 增加一个命名范围,作用是在导入时所需的范围

exlApplication.Names.Add strSheetName, "=" & strSheetName & "!$A$1:$" & _

uGetColName(intFieldCount + 1) & "$" & lngRecordCount

'// 保存 Excel 文件

exlBook.SaveAs strExcelFile

'// 退出 Excel 实例

exlApplication.Quit

ExportTempletToExcel = True

End If

'adStateOpen = 1

If .State = 1 Then

.Close

End If

End With

LocalErr:

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

'** 释放所有对象

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

Set exlSheet = Nothing

Set exlBook = Nothing

Set exlApplication = Nothing

Set adoRt = Nothing

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

If Err.Number <> 0 Then

Err.Clear

End If

Me.MousePointer = vbDefault

End Function

'// 取得列名

Private Function uGetColName(ByVal intNum As Integer) As String

Dim strColNames As String

Dim strReturn As String

'// 通常字段数不会太多,所以到 26*3 目前已经够了。

strColNames = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z," & _

"AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ," & _

"BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ"

strReturn = Split(strColNames, ",")(intNum - 1)

uGetColName = strReturn

End Function

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有