欢迎光临
我们一直在努力

在vb中利用word宏命令开发asp组件_asp实例

建站超值云服务器,限时71元/月

作者:杨忠勋
专业:计算机软件开发及应用
语言能力:TOFEL633 GRE2140
Email:zhongxunyang@yahoo.com.cn


      在Mis系统的实际开发中,我们有时需要将当前页面上报表的数据以Word文档的格式下载到本地,这种实现并不困难。但是有时我们需要对下载的Word文档的格式做一些设置,比如标题颜色,字体大小,字间距等等,这时我们就要用到Word自带的宏功能。


      比如我们想将此报表的标题在Word文档中以如下格式显示:14号字,加粗,居中对齐。首先我们需要在Word中录制相应的宏命令。打开Word,新建一文档,手动敲入一行字,然后选择工具->宏->录制新宏命令,为新宏取一个名字如Macro1,执行以上动作(14号字,加粗,居中对齐),Word自动将这些动作保存以相应的Vbscript命令。然后选择工具->宏->宏命令,选择刚才我们定义的宏Macro1,就可以查看其内容了。在此例中我们保存的宏命令如下:   


    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 居中对齐
    Selection.Font.Bold = wdToggle 加粗显示
    Selection.Font.Size = 14 14号字


    因为宏命令的脚本语言是Vbscript,我们不需要做任何改动就可以将上面的语句在VB中使用。这样,我们就可以编写出如下VB代码,实现我们所要求的功能。代码如下:


    WdApp.Selection.Font.Bold = wdToggle 加粗显示
    WdApp.Selection.Font.Size = 14 14号字
    WdApp.Selection.TypeText (“报表标题”) 报表标题
    WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter 居中对齐
    WdApp.Selection.Font.Bold = wdToggle 取消加粗


    同样,我们如想对Word文档进行其他处理,重复以上的步骤就可以了。以下提供我的一个完整的对Word文档进行处理的例子:


    Private Function SaveAsWord(ByRef MyRecord As Recordset, ByVal DocFileName As String, ByRef OutMessage As String) As Integer
    *************************************************************************
   
    说明:将数据集中的数据另存为DOC文件
   
    参数:
   
    MyRecord       数据集
    DocFileName    WORD文件的名称(无路径,路径见实例变量sPath)
    OutMessage     操作的的返回信息
   
    返回:         1成功   -1失败
   
    *************************************************************************
   
    初始化Word应用
    err.Clear
    On Error GoTo Err_All
    Dim WdApp As Word.Application
    Set WdApp = CreateObject(“Word.Application”)


    插入数据
    Dim colloop As Integer      列号
    Dim rowloop As Integer      行号
    Dim colMax As Integer       列数
    Dim rowMax As Integer       行数
    Dim wdcell As Integer       宽
    Dim UnitEnd As Integer      截取结束点
    Dim UnitName As String      单位名称
    Dim BbDate As String        报表期别
   
   
    wdcell = 12
    colMax = MyRecord.Fields.count
    rowMax = MyRecord.RecordCount


    WdApp.Documents.Add
   
    获取报表单位
    UnitEnd = InStr(sBBDetail, “期别”)
    UnitName = Mid(sBBDetail, 1, UnitEnd – 2)
    BbDate = Mid(sBBDetail, UnitEnd, Len(sBBDetail))
   
    If MyRecord.Fields.count >= 10 Then
        WdApp.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
    Else
        WdApp.ActiveDocument.PageSetup.Orientation = wdOrientPortrait
    End If
   
    报表名称
    WdApp.Selection.Font.Bold = wdToggle
    WdApp.Selection.Font.Size = 14
    WdApp.Selection.TypeText (sbbmc)
    WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter
    WdApp.Selection.Font.Bold = wdToggle
    WdApp.Selection.TypeParagraph
   
    报表单位名称
    WdApp.Selection.Font.color = wdColorBlack
    WdApp.Selection.Font.Size = 11
    WdApp.Selection.TypeText (UnitName)
    WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    WdApp.Selection.TypeParagraph
   
    报表期别
    WdApp.Selection.TypeText (BbDate)
    WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    WdApp.Selection.TypeParagraph
    WdApp.Selection.TypeParagraph
   
    生成列头
    wdApp.Selection.HomeKey wdLine, wdExtend
    dApp.Selection.Font.Bold = wdToggle


    WdApp.ActiveDocument.Tables.Add WdApp.Selection.Range, rowMax, colMax
    Dim i As Integer
    Do
        For colloop = 0 To colMax – 1
            WdApp.Selection.Font.Size = 9
       
            If i = 0 Then
            
                表格中标题加粗显示
                WdApp.Selection.Font.Bold = wdToggle
               
                表格标题行背景颜色设置为灰色,灰度为30
                With WdApp.Selection.Cells
                     With .Shading
                          .Texture = wdTextureNone
                          .ForegroundPatternColor = wdColorAutomatic
                          .BackgroundPatternColor = wdColorGray30
                     End With
                End With
           
            End If
            最后一行右对齐,其余左对齐
            If i > 0 Then
               If MyRecord.Fields.Item(colloop).Name = “ZBMC” Or MyRecord.Fields.Item(colloop).Name = “指标名称” Then
                  WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
               Else
                  WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
               End If
            End If
           
           
            If i = 0 And (MyRecord.Fields.Item(colloop).Name = “SXH” Or MyRecord.Fields.Item(colloop).Name = “顺序号”) Then
                WdApp.Selection.TypeText (“序号”)
            Else
                WdApp.Selection.TypeText (CStr(MyRecord.Fields.Item(colloop).value))
            End If
            If (i <> rowMax – 1 Or (i = rowMax – 1 And colloop < colMax – 1)) Then
               WdApp.Selection.MoveRight (wdcell)
            End If
        Next
        i = i + 1
        MyRecord.MoveNext
    Loop Until MyRecord.EOF
   
    WdApp.ActiveDocument.SaveAs DocFileName, 0, False, “”, True, “”, False, False, False, False, False
    WdApp.Quit
   
    SaveAsWord = 1
    Exit Function
       
Err_All:
    Set WdApp = Nothing
    SaveAsWord = -1
    OutMessage = err.Description
    Exit Function
End Function


    好了,到此为止,我想你们对在VB中利用Word宏命令开发ASP组件,有了一些了解。只要多使用,就会很快熟悉的。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 在vb中利用word宏命令开发asp组件_asp实例
分享到: 更多 (0)

相关推荐

  • 暂无文章