国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在VB中利用Word宏命令開發ASP組件

2019-11-18 19:45:59
字體:
來源:轉載
供稿:網友

作者:楊忠勛
專業:計算機軟件開發及應用
語言能力: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組件,有了一些了解。只要多使用,就會很快熟悉的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海丰县| 湖南省| 达州市| 常宁市| 广饶县| 新民市| 农安县| 遵义县| 象山县| 民丰县| 繁峙县| 鄄城县| 大方县| 陆川县| 无锡市| 柏乡县| 台江县| 洛宁县| 南宫市| 长宁县| 沙雅县| 鲜城| 武穴市| 西盟| 松江区| 乾安县| 南汇区| 万全县| 墨竹工卡县| 古浪县| 佛坪县| 米脂县| 绥阳县| 漳州市| 茌平县| 南和县| 嵊泗县| 武城县| 镇巴县| 保靖县| 东乡族自治县|