如何把MSHFlexGrid里的数据导出至Excel.docx
《如何把MSHFlexGrid里的数据导出至Excel.docx》由会员分享,可在线阅读,更多相关《如何把MSHFlexGrid里的数据导出至Excel.docx(20页珍藏版)》请在冰豆网上搜索。
如何把MSHFlexGrid里的数据导出至Excel
如何把MSHFlexGrid里的数据导出至Excel?
用Adodc1做了查询语句,结果显示在一个MSHFlexGrid里面。
现在要求做一个按钮(Command1),点击它就把MSHFlexGrid里显示的数据导出至Excel表中。
就是一点这个按钮,就会自动打开Excel,然后数据就已经进去了,方便编辑和打印。
要求:
代码详细,直接复制到Command1下就能用。
这块我不懂,所以不要搞什么子程序调用之类的,要有子程序也给直接调用好。
直接复制代码成功后,再追加100分。
把这个弄完工程就结了,再不用受罪了,哈哈!
以下是精简后的代码,不清楚你工作中的一些细节,所以如有问题与我讨论
PrivateSubCommand1_Click()
=False'关闭表格重画,加快运行速度
SetxlApp=CreateObject("")'创建EXCEL对象
SetxlBook=&"\对账模板.xls")'打开已经存在的EXCEL工件簿文件
=True'设置EXCEL对象可见(或不可见)
Setxlsheet=("Sheet1")'设置活动工作表
ForR=0To-1'行循环
ForC=0To-1'列循环
=R
=C
("Sheet1").Cells(R+1,C+1)='保存到EXCEL
NextC
NextR
=True
''打印工作表
=False'不进行安全提示
'(False)'关闭工作簿
Setxlsheet=Nothing
SetxlBook=Nothing
SetxlApp=Nothing
EndSub
下面的代码就也能导出到EXCEL
Dim xlApp As
Dim xlBook As
Dim xlSheet As
Dim i As Long, J As Long
On Error GoTo ErrorHandle
Set xlApp = CreateObject("")
Set xlBook =
Set xlSheet =
(1)
For i = 0 To - 1
For J = 0 To - 1
(i + 1, J + 1).Value = (i, J)
Next J
Next i
= True
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
Exit Sub
ErrorHandle:
MsgBox "错误:
" & & vbCrLf & , vbOKOnly, "运行错误"
如何将表中的数据导出到电子表格中
作者:
施进兵
有很多方法都可将数据库中某个表的数据导出到电子表格中,例如通过创建,可以利用Access本身的导出功能实现将表中的数据导出到电子表格中。
但是这种方法会占用较多的系统资源,并且缺乏通用性。
如果一个数据库没有导出的功能怎么办?
下面的这段程序代码利用记录集实现导出的功能,这种做法的好处是显而易见的:
你可以控制要导出的数据,而不用将整个表的内容都导出到电子表格中。
为简单起见下面的程序代码仍将整个表的数据导出到电子表格中。
如果你有兴趣的话,对下面的代码稍加改动就可做成更为通用的一个类或是一个控件。
首先在窗体上添加一个标签控件和一个命令按钮,然后在工程中添加对DAO引用。
利用下面的程序代码就可将表中的数据导出到电子表格中。
Option Explicit
Private Sub Command1_Click()
Dim tempDB As Database
Dim i As Integer ' 循环计数器
Dim j As Integer
Dim rCount As Long ' 记录的个数
Dim xl As Object ' OLE自动化对象
Dim Sn As Recordset
= 11
= "打开数据库..."
Set tempDB = Workspaces(0).OpenDatabase("")
= "创建Excel对象..."
Set xl = CreateObject("")
= "创建快照型记录集..."
Set Sn = ("Customers", dbOpenSnapshot)
If > 0 Then
= "将字段名添加到电子表格中"
For i = 0 To - 1
(1).cells(1, i + 1).Value = Sn(i).Name
Next
rCount =
' 在记录中循环
i = 0
Do While Not
= "Record:
" & Str(i + 1) & " of" & _
Str(rCount)
For j = 0 To - 1
' 加每个字段的值加到工作表中
If Sn(j).Type < 11 Then
(1).cells(i + 2, j + 1).Value = Sn(j)
Else
' 处理Memo和LongBinary 类型的字段
(1).cells(i + 2, j + 1).Value = "Memo or Binary Data"
End If
Next j
i = i + 1
Loop
' 保存工作表
= "保存文件..."
"c:
\"
'从内存中删除Excel对象
= "退出Excel"
Else
' 没有记录
End If
' 清除
= "清除对象"
Set xl = Nothing
Set Sn = Nothing
Set tempDB = Nothing
= 0 ' 恢复鼠标指针
= "Ready"
End Sub
Private Sub Form_Load()
= True
= "Ready"
End Sub
给你个我用的方法,很好用
'OptionExplicit
''*********************************************************
''*名称:
ExportToExcel
''*功能:
导出数据到EXCEL
''*用法:
ExporToExcel记录集,标题
''*********************************************************
'PublicFunctionExportToExcel(Rs_DataAs,CenterHeaderAsString)AsBoolean
'DimIrowcountAsInteger
'DimIcolcountAsInteger
'DimSAAsString
'DimxlAppAsNew
'DimxlBookAs
'DimxlSheetAs
'DimxlQueryAs
'OnErrorGoToerr
'WithRs_Data
'If.state=adStateOpenThen
'.Close
'EndIf
'.ActiveConnection=DBConn
'.CursorLocation=adUseClient
'.CursorType=adOpenStatic
'.LockType=adLockReadOnly
''.Source=strOpen
'.Open
'EndWith
'WithRs_Data
''记录总数
'Irowcount=.RecordCount
''字段总数
'Icolcount=.
'EndWith
'SetxlApp=CreateObject("")
'SetxlBook=Nothing
'SetxlSheet=Nothing
'SetxlBook=().add
'SetxlSheet=("sheet1")
'=False
''添加查询语句,导入EXCEL数据
'SetxlQuery=("a1"))
'WithxlQuery
'.FieldNames=True
'.RowNumbers=False
'.FillAdjacentFormulas=False
'.PreserveFormatting=True
'.RefreshOnFileOpen=False
'.BackgroundQuery=True
'.RefreshStyle=xlInsertDeleteCells
'.SavePassword=True
'.SaveData=True
'.AdjustColumnWidth=True
'.RefreshPeriod=0
'.PreserveColumnInfo=True
'EndWith
'=True'显示字段名
'
'IfCenterHeader="开停历史纪录"Then
'SA="A1:
H"+CStr(Irowcount+1)
'ElseIfCenterHeader="锁闭阀运行状态"Then
'SA="A1:
F"+CStr(Irowcount+1)
'ElseIfCenterHeader="锁闭阀分配表"Then
'SA="A1:
F"+CStr(Irowcount+1)
'ElseIfCenterHeader="用户信息汇总"Then
'SA="A1:
I"+CStr(Irowcount+1)
'ElseIfCenterHeader="锁闭阀开停设置"Then
'SA="A1:
H"+CStr(Irowcount+1)
'ElseIfCenterHeader="房间信息"Then
'SA="A1:
J"+CStr(Irowcount+1)
'EndIf
'WithxlSheet
''.Range(.Cells(1,1),.Cells(1,Icolcount)).="宋体"
''.Range(.Cells(1,1),.Cells(1,Icolcount)).=10
''标题字体加粗
''.Range(.Cells(1,1),.Cells(Irowcount+1,Icolcount)).=xlContinuous
''设表格边框样式
'字体
'.Range(SA).="宋体"
'.Range(SA).=10
''设标题为黑体字
'.Range(.Cells(1,1),.Cells(1,Icolcount)).=True
'列宽度
'IfCenterHeader="开停历史纪录"Then
'.Columns("A:
A").ColumnWidth=
'.Columns("B:
B").ColumnWidth=
'.Columns("C:
C").ColumnWidth=
'.Columns("D:
D").ColumnWidth=
'.Columns("E:
E").ColumnWidth=
'.Columns("F:
F").ColumnWidth=7
'.Columns("G:
G").ColumnWidth=7
'.Columns("H:
H").ColumnWidth=
'EndIf
''对齐
'.Range(SA).HorizontalAlignment=xlCenter
'.Range(SA).VerticalAlignment=xlCenter
''边框
'.Range(SA).Borders(xlDiagonalDown).LineStyle=xlNone
'.Range(SA).Borders(xlDiagonalUp).LineStyle=xlNone
'With.Range(SA).Borders(xlEdgeLeft)
'.LineStyle=xlContinuous
'.Weight=xlThin
'.ColorIndex=xlAutomatic
'EndWith
'With.Range(SA).Borders(xlEdgeTop)
'.LineStyle=xlContinuous
'.Weight=xlThin
'.ColorIndex=xlAutomatic
'EndWith
'With.Range(SA).Borders(xlEdgeBottom)
'.LineStyle=xlContinuous
'.Weight=xlThin
'.ColorIndex=xlAutomatic
'EndWith
'With.Range(SA).Borders(xlEdgeRight)
'.LineStyle=xlContinuous
'.Weight=xlThin
'.ColorIndex=xlAutomatic
'EndWith
'With.Range(SA).Borders(xlInsideVertical)
'.LineStyle=xlContinuous
'.Weight=xlThin
'.ColorIndex=xlAutomatic
'EndWith
'With.Range(SA).Borders(xlInsideHorizontal)
'.LineStyle=xlContinuous
'.Weight=xlThin
'.ColorIndex=xlAutomatic
'EndWith
'EndWith
''页面设置
'With
'.LeftHeader=""&""&Chr(10)&"&10单位名称:
"
'.CenterHeader="&""宋体,加粗""&16"&CenterHeader
'.RightHeader="&""TimesNewRoman,常规""&10"&""&Chr(10)&"&""宋体,常规""打印日期&""TimesNewRoman,常规"":
&D"
'.LeftFooter=""
'.CenterFooter="第&P页,共&N页"
'.RightFooter=""
'.PrintHeadings=False
'.PrintGridlines=True
'.PrintComments=xlPrintNoComments
''.PrintQuality=200
'.CenterHorizontally=False
'.CenterVertically=False
'.Draft=False
'.PaperSize=xlPaperA4
'.FirstPageNumber=xlAutomatic
'.Order=xlDownThenOver
'.BlackAndWhite=False
'.Zoom=100
'EndWith
'=True
''交还控制给Excel
'SetxlApp=Nothing'
'SetxlBook=Nothing
'SetxlSheet=Nothing
'ExitFunction
'err:
'MsgBox,vbInformation,MsgTitle
'EndFunction
[VB]将VB表格中的数据导出到Excel(2006-5-1417:
30:
00)
步骤介绍:
首先在VB建一个MSFlexGrid表格,再连接到数据库,将数据库的表的资料显示到表格中,最后调用ExportExcel1()函数将表格中数据导出到Excel.
第一步:
在VB建一个MSFlexGrid表格,再连接到数据库,将数据库的表的资料显示到表格中,这个代码我就不写了。
大家应该都知道写把。
第二步:
将以下函数代码放到模块里,只需改3处代码,则可实现导出功能,其他地方不用改。
/*IntToChr(这个函数不要做任何修改)
说明:
将网格的列数转换成Excel中的字符形表示方式
*/
PublicFunctionIntToChr(iRow1AsInteger,iCol1AsInteger,iRow2AsInteger,iCol2AsInteger)AsString
DimiAsInteger,jAsInteger,tmpiAsInteger
DimTmpstr(1To2)AsString
IfiCol1<1OriCol1>256OriCol2<1OriCol2>256Then
IntToChr=""
ExitFunction
EndIf
j=iCol1Mod26
Ifj=0Then
i=(iCol1\26)-1
j=26
Else
i=(iCol1\26)
EndIf
Ifi>0Then
Tmpstr
(1)=Chr(64+i)&Chr(64+j)
Else
Tmpstr
(1)=Chr(64+j)