999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OLE的Word文檔自動生成技術在農業氣象服務中的應用

2024-12-31 00:00:00于成孫磊成青燕
鄉村科技 2024年7期

摘 要:隨著現代農業的發展,各種新型農業生產經營主體對精細化氣象服務的需求越來越迫切。因此,需要一種快速、準確的氣象服務產品制作技術,以提高農業氣象服務的效率和品質。利用OLE自動化技術和Word對象模型,可實現VB對Word文檔的自動化操作。此研究以直通式農業氣象服務產品制作為例,詳細地介紹了Word自動化技術在農業氣象服務中的具體應用。

關鍵詞:OLE自動化;Word對象模型;VB編程;農業氣象服務

中國分類號:TP317.1;S126 文獻標志碼:A 文章編號:1674-7909(2024)7-136-4

DOI:10.19345/j.cnki.1674-7909.2024.07.031

0 引言

眾所周知,農業對天氣、氣候影響的反應最敏感,也因此而具有脆弱性。農業生產者不僅要考慮氣候資源對作物生長適宜性的滿足程度,也要考慮各種氣象災害對作物生長和農事活動的限制,由此做出最佳的農業布局和生產計劃安排,以獲得最高的農業生產收益。因此,現代農業中諸如農村合作社、農業基地、農業產業化龍頭企業及專業種植戶等新型農業生產經營主體對氣象的精細化服務有著迫切的需要。與此同時,隨著氣象現代化建設的不斷推進,綜合氣象觀測能力和氣象預報預測能力也不斷提高。諸如衛星資料、雷達數據、地面氣象觀測數據、氣象融合數據、智能網格氣象預報數據等氣象產品日益豐富多樣,這為開展精細化的氣象監測、氣象預報預警等服務奠定了堅實的基礎。

然而,由于不同的經營主體有不同的氣象服務需求,甚至同一經營主體在不同時期的需求內容也不一樣,因此氣象服務產品需要在調研用戶需求的基礎上進行個性化定制。顯然,面對眾多用戶的不同氣象信息需求,如果采用人工錄入和排版的方式進行服務產品制作,不但存在錄入錯誤、校對時難以發現的問題,而且產品制作效率低下。可見,在開展個性化氣象服務時,必須采用一種自動化技術,這種技術能對Word文檔中諸如圖、文、表的輸入及其格式設置等操作進行自動處理,可快速、準確地生成氣象服務產品。相關的技術有許多種:王怒濤等[1]在VC環境下實現了Word文檔的自動生成;王錫良[2]利用Aspose.Words類庫實現了Word文檔生成、修改、轉換和打印等功能;王春明等[3]在Java環境下利用Jacob組件實現了Word文檔自動生成;林晉立[4]在VB環境中實現了檢測報告的Word文檔自動生成。在上述文獻介紹的自動化技術中,除Aspose.Words類庫屬于API技術外,其余技術均與COM或OLE技術相關。鑒于Ms Office提供了OLE自動化技術,以VB為編程工具,采用OLE技術,通過對相關Word對象的訪問,既能準確地錄入數據,同時也能保持服務產品的標準化和規范化,使得服務效率和質量都有極大提高。

為了具體展示這些技術,假設向當地某一經濟作物種植基地提供直通式氣象服務,內容包括種植基地在過去24 h內氣溫變化情況、未來一周天氣預報和農事活動氣象適宜等級預報。

1 技術原理

1.1 OLE自動化

OLE自動化(即OLE Automation)是一個應用程序控制另一個應用程序的機制,通過在代碼中定義不同類的對象來實現OLE功能[5]。在這樣的機制下,控制其他對象的程序叫自動化客戶端或主機程序,被控制的應用程序叫自動化服務器或目標程序。自動化服務器通過COM接口向自動化客戶端公開其功能,這樣自動化客戶端就能直接訪問自動化服務器上的對象并使用其提供的屬性和方法來完成特定的功能。很多編程工具,如VB、Delphi、VC++、C++Builder、VS2013及宏語言都具有支持OLE技術的功能[6-10]。利用OLE技術,可以開發出集合多個專業平臺功能于一體的綜合應用軟件。

1.2 Word對象模型

Word的自動化操作,實際就是對Word文檔中窗口、圖片、表格、區域、段落等內容進行一系列自動化處理,作為自動化服務器的Word將上述內容以各種對象的形式提供給自動化客戶端。這些對象雖然數量眾多,但均以層次結構的形式進行組織(見圖1),這種具有組織體系的Word對象系統就是Word對象模型。通過Word對象模型,開發人員可以掌握各種Word對象及其屬性、方法和事件,為實現Word的自動化控制奠定基礎。

例如,Application對象在Word對象模型中居于層次結構的頂部,代表Word應用程序,所有與Word應用程序相關的操作均可通過這一對象來實現,一般通過Application對象來完成對Word應用環境的操作,如設置活動打印機名稱、查詢版本號等。Document對象對應Word文檔,通過Document對象可實現對Word文檔的新建、關閉、保存等操作。Range對象對應Word文檔中的一個連續區域,可以對該區域進行復制、剪貼、導出、插入等操作。Bookmarks對象對應Word文檔中的書簽,常用于位置標記。上述的幾個對象是常用的Word對象,在實現Word自動化過程中需要經常使用。

1.3 VB操作Word文檔

在VB中,需要對Word對象庫進行綁定后,才能對Word對象進行操作。綁定的方式有前期綁定和后期綁定。如果采用前期綁定,則須在VB工程中通過點擊菜單“工程→引用”選取“Microsoft word XX.0 Object Library”實現。如果采用后期綁定的方式,則直接定義一個通用型對象變量,如dim WrdApp as Object,然后通過CreateObject方法或GetObject方法為WrdApp指向具體的對象。

前期綁定和后期綁定各有優勢和劣勢。一般而言,采用前期綁定的方式,可以提升應用程序的工作效率,同時在編寫代碼時可啟用自動代碼填充和動態幫助等實用功能,從而減輕編寫代碼的工作量,不過在程序運行時需要注意Word版本的兼容性限制;而采用后期綁定的方式,程序的兼容性更高,但內存消耗較大,同時由于編寫代碼時沒有自動提示功能,所以要求程序員非常熟悉各類對象及其屬性與方法。

2 農業氣象服務產品自動制作的關鍵技術

農業氣象服務產品自動生成的主要流程包括:根據用戶需求定制個性化服務產品,設置文檔模板及書簽;根據文檔模板新建文檔;在書簽處填寫數據,刪除書簽;保存文檔。在這過程中,文檔模板及書簽的設置非常重要,所有的自動化操作均建立在此基礎上。

2.1 文檔模板設置

在對氣象服務產品進行個性化定制時,主要將用戶需要的氣象數據、文字報告、圖表等內容以合理的方式進行版面組織,對預先輸入或相對不變的文字、表格等內容進行設置,再確定好整體Word文檔樣式。所有這些工作均在文檔模板設置時完成,并保存在指定的文件目錄中。文檔模板建立后,就能基于文檔模板創建具有統一版面風格的文檔,從而達到服務產品標準化和規范化的目的。

根據種植基地的氣象服務需求,服務產品由24 h氣溫變化曲線圖、未來一周天氣預報和未來一周農事活動氣象適宜等級預報3部分組成,對各部分的樣式設置完成后保存為模板文件,文件命名為“直通式農業氣象信息.dot”。

2.2 文檔書簽設置

在Word文檔中,書簽的主要作用是標記文檔的特定位置,起到定位的作用。書簽可以是文檔中的任意部分[11],既可以是文檔中的某一范圍,也可以是一個插入點。利用書簽的這一特性,可在Word模板文件設置時把需要填寫數據的地方設置為書簽,通過書簽名稱確定數據在文檔中輸入的位置。在本例中,建立3個書簽,分別取名為sDate、Pic和Week,其中在書簽sDate處填寫服務產品的制作日期,在書簽Pic處插入氣溫曲線圖,在書簽Week處填寫未來一周天氣預報。

2.3 文檔創建

啟動VB新建工程后,以前期綁定的方式引用Word對象庫,定義Word的Application對象變量WrdApp、Document對象變量wrdDoc、Bookmarks對象變量wBkMark和Table對象變量wTb,其代碼如下:

Dim WrdApp As Word.Application

Dim wrdDoc As Word.Document

Dim wBkMark As Word.Bookmark

Dim wTb As Word.Table,

下面代碼展示了各對象變量指向的具體對象實例:

Set WrdApp = New Word.Application

Set wrdDoc = WrdApp.Documents.Add(Template:=App.Path amp; “\tmp\直通式農業氣象信息。dot”)

Set wTb = wrdDoc.Tables(1)

其中,第二句代碼表示以文件“直通式農業氣象信息.dot”作為模板創建一個新的Word文檔,這個Word文檔繼承了原模板文件包括頁面、樣式、書簽等內容的所有信息,后續的程序將在此文檔中進行數據填寫、文檔保存等操作。

2.4 數據填寫

Word文檔通常包括文字、圖片、表格等數據,在本例中均有涉及。

2.4.1 文字填寫

文字部分可先直接定位到書簽,然后在該書簽處進行填寫。例如,假設變量sTxt(字符型變量)儲存了未來一周天氣預報,則以下代碼即可在文檔書簽名為“week”的位置處填寫未來一周天氣預報:

Set wBkMark=wrdDoc.Bookmarks(“week”)

wBkMark.Range.Text = sTxt

2.4.2 圖片插入

氣溫是影響作物生長的重要氣象條件之一,通過氣溫實況數據,用戶可以分析判斷在過去一段時間內溫度條件對作物生長的適宜程度。而能呈現種植基地在過去24 h內氣溫變化情況的最好方式就是氣溫變化曲線圖。

向文檔插入圖片可以通過InlineShapes對象來實現,InlineShapes對象代表在文檔、區域或所選內容中的所有內嵌形狀的對象。在本例中,需要在書簽名為“Pic”位置上插入一張氣溫變化曲線的圖片,可用InlineShapes對象的AddPicture方法,其語法如下:

Expression.InlineShapes. AddPicture( FileName , LinkToFile , SaveWithDocument , Range )

其中,字符型參數變量FileName是必需的參數,其指出了需要插入圖片的路徑和文件名;參數LinkToFile表示是否將圖片鏈接到創建它的文檔;參數SaveWithDocument表示是否將鏈接的圖片與文檔一起保存;參數Range 表示圖片放置在文本中的位置。后3個參數變量可省略。假設sPath儲存了基地過去24 h氣溫變化曲線圖的路徑和文件名,則以下代碼可實現在書簽名為“Pic”位置處插入24 h氣溫變化曲線圖:

Set wBkMark=wrdDoc.Bookmarks(“Pic”)

wBkMark.Range.InlineShapes.AddPicture FileName:=sPath

2.4.3 表格填寫

未來一周農事活動氣象適宜等級預報涉及7 d的等級預報,在文檔中設計為表格使得文檔頁面簡潔,內容一目了然。在本例中,先在模板文件中設計好一張空表格。假設氣象適宜等級預報內容儲存在字符型數組sTxt(n)中,其中數組元素按“日期、等級預報”的順序依次排列,如“sTxt(1)、sTxt(2)、sTxt(3)、sTxt(4)、……sTxt(13)、sTxt(14)”分別是“11月8日、適宜、11月9日、適宜、……、11月14日、不適宜”。通過以下代碼可以完成表格填寫:

n = 1

For i = 2 To iRow

For k = 1 To 2

wTb.Cell(i, k).Range.Text = sTxt(n)

n = n + 1

Next k

Next i

其中,iRow是表格的總行數;Cell(i,k)為表格中第i行、第k列處的單元格對象。由于表格第一行是表頭,因此,表格的填寫從第二行開始,通過兩個For循環逐行逐列地填寫。

2.5 書簽刪除及文檔保存

填寫完所有數據后,需要刪除書簽,以便文檔頁面保持簡潔,在程序中通過遍歷所有書簽變量的方式進行刪除,其代碼如下:

For Each wBkMark In wrdDoc.Bookmarks

wBkMark.Delete

Next wBkMark

將文檔保存在指定的文件夾中,在本例中,字符型變量sDocPath儲存了文檔應存放的文件夾和文件名,則以下代碼可實現文檔保存:

wrdDoc.SaveAs sDocPath

2.6 關閉文檔與Word程序

程序結束前,通過wrdDoc.Close和WrdApp.Quit兩句代碼關閉文檔和Word程序。最后將所有對象變量賦值為Nothing,釋放對象變量所占用的內存空間。例如,釋放書簽對象變量wBkMark,其代碼為:Set wBkMark = Nothing。

3 結束語

此研究簡要闡述了Word文檔自動化制作的技術原理,并以具體的氣象服務產品制作為例,按業務流程介紹了文檔模板和書簽設計的思路,最后利用VB編程工具,對文檔創建、保存及在文檔中文字填寫、圖片插入、表格數據錄入等操作給出了具體的代碼。程序運行結果表明,該技術能快速、高效、準確地生成規范化、標準化的農業氣象服務產品,有利于提高氣象服務的效率和質量。

參考文獻:

[1]王怒濤,李大凱,李丹,等.VC++的Word文檔中的表與圖自動生成技術[J].石油工業計算機應用,2015,86(2):20-23.

[2]王錫良.公共氣象服務文檔自動化研究與應用[J].中低緯山地氣象,2018,42(3):95-98.

[3]王春明,朱曉輝,陸天捷.基于JACOB的Word文檔自動生成技術研究[J].南通職業大學學報,2012,26(1):77-80.

[4]林晉立.基于VB6.0的檢測報告生成系統的設計與實現[J].現代計算機,2022,28(21):82-86.

[5]王惠平.淺談Visual Basic 6.0中OLE自動化的應用[J].韶關學院學報(自然科學),2005,26(9):17-21.

[6]呂靜.基于OLE自動化實現Excel動態報表[J].電腦知識與技術,2017,13(9):180-181.

[7]邵淑霞.OLE自動化技術[J].無線互聯科技,2013(2):182.

[8]郭玉樂,劉丕亮.利用C++Builder實現Excel數據及圖表生成[J].數碼世界,2017(5):20.

[9]關旭東.基于VS2013的檢波器測試儀測試報表自動生成技術[J].林業科技情報,2016,48(4):80-85.

[10]王炎舜.對象鏈接與嵌入技術在產品測試輸出中的應用[J].河南科技,2020(8):31-33.

[11]宋翔.Word排版技術大全[M].北京:人民郵電出版社,2015:295.

作者簡介:于成(1975—),男,碩士,工程師,研究方向:農業氣象、氣候資源、決策氣象研究與服務及程序設計。

主站蜘蛛池模板: 日韩在线播放欧美字幕| 99人妻碰碰碰久久久久禁片| 97久久超碰极品视觉盛宴| 嫩草在线视频| 亚洲一区二区在线无码| 欧美第二区| 国产精品久久久久久搜索| 国产精品免费露脸视频| 免费人成网站在线观看欧美| 亚洲一区二区视频在线观看| 114级毛片免费观看| 99久久亚洲综合精品TS| 欧洲精品视频在线观看| 国产午夜人做人免费视频中文| 国产chinese男男gay视频网| 无码精品福利一区二区三区| 精品91视频| 丁香婷婷久久| 国产精品密蕾丝视频| 亚洲国产精品无码AV| 香蕉国产精品视频| 国产区福利小视频在线观看尤物| 午夜福利亚洲精品| 性视频一区| 亚洲综合国产一区二区三区| 91小视频在线观看| 自拍亚洲欧美精品| 乱人伦中文视频在线观看免费| 国产日韩欧美在线播放| 午夜精品久久久久久久99热下载| 四虎免费视频网站| 不卡无码h在线观看| 国产成人亚洲精品无码电影| 欧美精品另类| 91成人免费观看| 伊人蕉久影院| 日韩a级片视频| 国产在线拍偷自揄拍精品| 中文成人无码国产亚洲| 高清免费毛片| 亚洲精品波多野结衣| 亚洲欧洲日产国产无码AV| 国产在线97| 亚洲一区二区三区国产精华液| 国产日本视频91| 日韩专区第一页| 亚洲一级毛片免费观看| 色亚洲成人| 国产日韩av在线播放| 亚亚洲乱码一二三四区| 人妻精品全国免费视频| 操国产美女| 九九热精品视频在线| 欧美精品不卡| 亚洲日本一本dvd高清| 亚洲第一福利视频导航| 欧美a√在线| 欧美国产综合色视频| 国产乱子伦精品视频| 亚洲天堂免费| 国产一级一级毛片永久| 视频二区欧美| 免费国产高清精品一区在线| 亚洲精品成人7777在线观看| 日韩无码白| 久久久久中文字幕精品视频| 999国产精品| 午夜不卡福利| 欧美成人看片一区二区三区| 久久久久无码精品| 国产精品不卡永久免费| 亚洲Av激情网五月天| 天天综合网在线| 久久人午夜亚洲精品无码区| 中文字幕天无码久久精品视频免费 | 亚洲精品中文字幕无乱码| 日韩成人午夜| 中文字幕在线日韩91| 亚洲性视频网站| 国产a在视频线精品视频下载| 国产亚洲精久久久久久无码AV | 国产青青草视频|