Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 2892|回復(fù): 0
打印 上一主題 下一主題

一個(gè)完整的對(duì)Word文檔進(jìn)行處理的例子

[復(fù)制鏈接]

點(diǎn)擊這里給我發(fā)消息

跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2004-9-15 00:13:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式


作者:楊忠勛

專業(yè):計(jì)算機(jī)軟件開發(fā)及應(yīng)用

語(yǔ)言能力:TOFEL633 GRE2140

Email:zhongxunyang@yahoo.com.cn

      在Mis系統(tǒng)的實(shí)際開發(fā)中,我們有時(shí)需要將當(dāng)前頁(yè)面上報(bào)表的數(shù)據(jù)以Word文檔的格式下載到本地,這種實(shí)現(xiàn)并不困難。但是有時(shí)我們需要對(duì)下載的Word文檔的格式做一些設(shè)置,比如標(biāo)題顏色,字體大小,字間距等等,這時(shí)我們就要用到Word自帶的宏功能。

      比如我們想將此報(bào)表的標(biāo)題在Word文檔中以如下格式顯示:14號(hào)字,加粗,居中對(duì)齊。首先我們需要在Word中錄制相應(yīng)的宏命令。打開Word,新建一文檔,手動(dòng)敲入一行字,然后選擇工具->宏->錄制新宏命令,為新宏取一個(gè)名字如Macro1,執(zhí)行以上動(dòng)作(14號(hào)字,加粗,居中對(duì)齊),Word自動(dòng)將這些動(dòng)作保存以相應(yīng)的Vbscript命令。然后選擇工具->宏->宏命令,選擇剛才我們定義的宏Macro1,就可以查看其內(nèi)容了。在此例中我們保存的宏命令如下:   

    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter '居中對(duì)齊

    Selection.Font.Bold = wdToggle '加粗顯示

    Selection.Font.Size = 14 '14號(hào)字

    因?yàn)楹昝畹哪_本語(yǔ)言是Vbscript,我們不需要做任何改動(dòng)就可以將上面的語(yǔ)句在VB中使用。這樣,我們就可以編寫出如下VB代碼,實(shí)現(xiàn)我們所要求的功能。代碼如下:

    WdApp.Selection.Font.Bold = wdToggle '加粗顯示

    WdApp.Selection.Font.Size = 14 '14號(hào)字

    WdApp.Selection.TypeText ("報(bào)表標(biāo)題") '報(bào)表標(biāo)題

    WdApp.Selection.ParagraphFormat.lignment = wdAlignParagraphCenter '居中對(duì)齊

    WdApp.Selection.Font.Bold = wdToggle '取消加粗

    同樣,我們?nèi)缦雽?duì)Word文檔進(jìn)行其他處理,重復(fù)以上的步驟就可以了。以下提供我的一個(gè)完整的對(duì)Word文檔進(jìn)行處理的例子:

    Private Function SaveAsWord(ByRef MyRecord As Recordset, ByVal DocFileName As String, ByRef OutMessage As String) As Integer

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

    '

    '說明:將數(shù)據(jù)集中的數(shù)據(jù)另存為DOC文件

    '

    '參數(shù):

    '

    'MyRecord       數(shù)據(jù)集

    'DocFileName    WORD文件的名稱(無路徑,路徑見實(shí)例變量sPath)

    'OutMessage     操作的的返回信息

    '

    '返回:         1成功   -1失敗

    '

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

   

    '初始化Word應(yīng)用

    err.Clear

    On Error GoTo Err_All

    Dim WdApp As Word.Application

    Set WdApp = CreateObject("Word.Application")

    '插入數(shù)據(jù)

    Dim colloop As Integer      '列號(hào)

    Dim rowloop As Integer      '行號(hào)

    Dim colMax As Integer       '列數(shù)

    Dim rowMax As Integer       '行數(shù)

    Dim wdcell As Integer       '寬

    Dim UnitEnd As Integer      '截取結(jié)束點(diǎn)

    Dim UnitName As String      '單位名稱

    Dim BbDate As String        '報(bào)表期別

   

   

    wdcell = 12

    colMax = MyRecord.Fields.count

    rowMax = MyRecord.RecordCount

    WdApp.Documents.Add

   

    '獲取報(bào)表單位

    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

   

    '報(bào)表名稱

    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

   

    '報(bào)表單位名稱

    WdApp.Selection.Font.color = wdColorBlack

    WdApp.Selection.Font.Size = 11

    WdApp.Selection.TypeText (UnitName)

    WdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

    WdApp.Selection.TypeParagraph

   

    '報(bào)表期別

    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

         
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-17 00:37 , Processed in 0.095405 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表