如何把MSHFlexGrid里的数据导出至Excel.docx

上传人:b****7 文档编号:25365678 上传时间:2023-06-07 格式:DOCX 页数:20 大小:26.80KB
下载 相关 举报
如何把MSHFlexGrid里的数据导出至Excel.docx_第1页
第1页 / 共20页
如何把MSHFlexGrid里的数据导出至Excel.docx_第2页
第2页 / 共20页
如何把MSHFlexGrid里的数据导出至Excel.docx_第3页
第3页 / 共20页
如何把MSHFlexGrid里的数据导出至Excel.docx_第4页
第4页 / 共20页
如何把MSHFlexGrid里的数据导出至Excel.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

如何把MSHFlexGrid里的数据导出至Excel.docx

《如何把MSHFlexGrid里的数据导出至Excel.docx》由会员分享,可在线阅读,更多相关《如何把MSHFlexGrid里的数据导出至Excel.docx(20页珍藏版)》请在冰豆网上搜索。

如何把MSHFlexGrid里的数据导出至Excel.docx

如何把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)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1