• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種測(cè)繪成果報(bào)告高效定制方法

      2021-07-25 10:04:22吳小龍盧尚龍李旺民
      地理空間信息 2021年7期
      關(guān)鍵詞:單元格開源表格

      吳小龍,盧尚龍*,李旺民

      (1.珠海市測(cè)繪院,廣東 珠海 519000)

      城市測(cè)繪即在城市開展的測(cè)繪活動(dòng),主要任務(wù)是為城市的規(guī)劃、建設(shè)與管理提供測(cè)繪地理信息支撐保障服務(wù),主要內(nèi)容包括平面和高程控制測(cè)量、工程測(cè)量、土地審批測(cè)繪、規(guī)劃監(jiān)督測(cè)繪、人防竣工驗(yàn)收測(cè)量、不動(dòng)產(chǎn)權(quán)籍調(diào)查以及4D產(chǎn)品生產(chǎn)等。近年來(lái),隨著城市規(guī)劃建設(shè)管理需求的提升和測(cè)繪地理信息技術(shù)的發(fā)展,城市測(cè)繪的工作內(nèi)容、服務(wù)領(lǐng)域和成果形式不斷擴(kuò)大,涉及大量專題測(cè)繪成果報(bào)告的定制輸出。傳統(tǒng)方法一般基于VBA開發(fā)成果輸出功能,在一定程度上提高了作業(yè)效率;而在實(shí)際生產(chǎn)中,該方法存在嚴(yán)重依賴Office版本、代碼維護(hù)困難、效率偏低等問題。

      1 傳統(tǒng)VBA方法遇到的問題

      VBA是捆綁在Microsoft Application應(yīng)用程序上的一個(gè)簡(jiǎn)單的Visual Basic程序語(yǔ)言,其特點(diǎn)是將VB語(yǔ)言與應(yīng)用對(duì)象模型結(jié)合起來(lái),以編程的方式來(lái)處理Word/Excel中的各種對(duì)象。測(cè)繪成果報(bào)告大多為Word或Excel格式,一般采用VBA開發(fā)成果定制功能,面臨的問題為:

      1)基于VBA方式操作Excel、Word,需在服務(wù)器或客戶端安裝Oきce,并及時(shí)更新以防漏洞,特別是服務(wù)器端,若在導(dǎo)出過程中出問題則可能導(dǎo)致服務(wù)器宕機(jī)。

      2)Excel能自動(dòng)分析字段類型,但對(duì)于文本、日期等字段類型容易出現(xiàn)強(qiáng)制格式化為數(shù)字的情況,造成信息表達(dá)錯(cuò)誤,如字段內(nèi)容以“-”或“=”開頭,Excel將其當(dāng)成公式,產(chǎn)生錯(cuò)誤。

      3)VBA的各個(gè)版本間存在兼容性問題,會(huì)出現(xiàn)成果報(bào)告格式錯(cuò)亂的情況。

      4)VBA效率相對(duì)較低,尤其是在數(shù)據(jù)量較大時(shí),邊寫數(shù)據(jù)邊刷新的方式,將大大降低輸出效率。

      為了解決上述問題,本文利用NPOI開源庫(kù)替代Excel VBA處理Excel文檔,利用DocX開源庫(kù)替代Word VBA處理Word文檔,以實(shí)現(xiàn)測(cè)繪成果的高效定制。

      2 基于NPOI的Excel報(bào)表定制

      POI是一套利用Java編寫的開源庫(kù),能幫助開發(fā)者在沒有安裝微軟Office的情況下讀寫Word/Excel文檔。NPOI,即POI的.NET版本,是一個(gè)開源的C#讀寫Excel、Word等微軟OLE2組件文檔的項(xiàng)目。NPOI的特點(diǎn)為:①采用Apache 2.0許可證,可免費(fèi)用于任何商業(yè)或非商業(yè)項(xiàng)目;②讀寫速度快、穩(wěn)定性好,采用面向接口的設(shè)計(jì)架構(gòu),比Office PIA的API更加方便、更人性化;③完美支持Excel,包含了大部分Excel的特性(單元格樣式、數(shù)據(jù)格式、公式等);④無(wú)需安裝Office,可避免版權(quán)以及Office各版本間的兼容性問題。

      目前NPOI包含若干個(gè)Assembly,作用各有不同,開發(fā)人員可按需加載相應(yīng)的 Assembly。例如,NPOI.Util為基礎(chǔ)輔助庫(kù),NPOI.POIFS為OLE2格式讀寫庫(kù),NPOI.DDF為Microsoft Drawing格式讀寫庫(kù),NPOI.SS為Excel公式計(jì)算庫(kù),NPOI.HPSF為OLE2的Summary Information和Document Summary Information屬性讀寫庫(kù),NPOI.HSSF為Excel BIFF格式讀寫庫(kù)。

      NPOI采用HSSFWorkbook類來(lái)處理xls,采用XSSFWorkbook類來(lái)處理xlsx,它們都繼承接口IWorkbook,因此可通過IWorkbook統(tǒng)一處理xls和xlsx格式的文件。一個(gè)Excel文件即一個(gè)Workbook對(duì)象,可包括多個(gè)Sheet表對(duì)象,每個(gè)Sheet表又包括了大量單元格對(duì)象,單元格是Excel中最有意義的對(duì)象。Excel底層中的單元格具有不同類型,如數(shù)字(NumberRecord)、空單元格(BlankRecord)、文本(LabelSSTRecord)等,設(shè)置單元格時(shí)需告訴NPOI創(chuàng)建單元格的類型;同樣在讀取時(shí)需根據(jù)格式的不同設(shè)置對(duì)象的不同類型,方便后期的數(shù)據(jù)處理。NPOI中SetCellValue、GetCellValue函數(shù)分別用于設(shè)置/獲取單元格的值。通常是打開已有的模版文件,將數(shù)據(jù)填入指定Sheet的單元格,并根據(jù)需要對(duì)單元格的格式進(jìn)行處理(包括行高、列寬、字體、單元格合并等)即可。

      3 基于DocX的Word報(bào)表定制

      早期的文檔格式(如doc、xls、ppt)基于OLE2標(biāo)準(zhǔn),OLE2是二進(jìn)制格式,文檔以二進(jìn)制的形式對(duì)不同的數(shù)據(jù)流進(jìn)行存儲(chǔ)。OpenXML標(biāo)準(zhǔn)是微軟新一代辦公軟件文檔格式標(biāo)準(zhǔn),是由微軟開發(fā)的一種以XML為基礎(chǔ)并以ZIP格式壓縮的電子文件規(guī)范,支持docx文檔、xlsx電子表單文檔、pptx幻燈片文檔等,2007以及更高版本的Office文檔均基于該標(biāo)準(zhǔn)。OpenXML復(fù)合文檔將數(shù)據(jù)流以XML格式分別描述,通過ZIP壓縮文件形式合并到一起。微軟推出了Open XML SDK,專門幫助.NET語(yǔ)言與Office實(shí)現(xiàn)互操作,這也成了COM組件外的新選擇,但它的安裝包有100 M,對(duì)很多部署來(lái)說(shuō),難度不小。

      DocX是一個(gè)在無(wú)需安裝Word的情況下對(duì)Word進(jìn)行操作的開源輕量級(jí).NET組件,可輕便操作Word,有利于減輕開發(fā)負(fù)擔(dān),提升程序效率。采用DocX需要.NET Framework4.0和VS2010或更高版本。DocX的特點(diǎn)為:①代碼開源,有免費(fèi)版與收費(fèi)版,免費(fèi)版功能可滿足大多數(shù)測(cè)繪成果報(bào)告的定制需求;②支持在文件中插入、刪除和替代文本,支持所有的文本格式,如字體、下劃線、高亮等;③支持插入圖片、超鏈接、表格、頁(yè)眉頁(yè)腳以及自定義屬性等;④支持類似JQuery的鏈?zhǔn)綄懛?很方便編程開發(fā);⑤無(wú)需安裝Office,可避免版權(quán)以及Office各版本間的兼容性問題。

      DocX中一個(gè)Word文檔的主要對(duì)象包括文檔(Document)、段落(Paragraph)、書簽(BookMark)、圖像(Image)、表格(Table)和自定義屬性(CustomProperty)等。測(cè)繪成果報(bào)告通常有一定的模版,利用模版文件可使Word成果報(bào)告的定制開發(fā)更加簡(jiǎn)單。一般來(lái)說(shuō),Word報(bào)表定制主要包括文檔打開(DocX.Load方法)、文本替換(DocX.ReplaceText方法)、表格填寫(Table.Rows.Cells.Paragraphs.InsertText方法)、圖像插入(InsertPicture方法)、文檔合并(DocX.InsertDocument)、文檔保存(DocX.Save)等工作。

      4 測(cè)試與比對(duì)

      城市測(cè)繪中不動(dòng)產(chǎn)權(quán)籍調(diào)查、人防竣工驗(yàn)收測(cè)量、規(guī)劃監(jiān)督測(cè)繪的成果報(bào)告包括大量的面積信息填寫和分層分戶圖輸出;而土地勘測(cè)定界測(cè)繪的成果報(bào)告則包括大量界址點(diǎn)和圖斑信息的輸出。一般通過定制成果模版的方式,將信息或?qū)n}圖片寫到模版的指定位置,因此表格數(shù)據(jù)填寫、圖片插入是影響成果報(bào)告輸出效率的關(guān)鍵因素。本文基于VBA和.NET分別開發(fā)了測(cè)試程序,以驗(yàn)證兩種方法的效率和用戶體驗(yàn)效果。測(cè)試程序界面如圖1所示。

      圖1 工程測(cè)量測(cè)試程序

      測(cè)試內(nèi)容包括影響成果報(bào)告定制效率的表格數(shù)據(jù)填寫、圖片插入兩個(gè)方面,測(cè)試數(shù)據(jù)為橫琴新區(qū)某項(xiàng)目圖斑1 020個(gè)節(jié)點(diǎn)坐標(biāo)成果,以文本方式存儲(chǔ);規(guī)劃條件核實(shí)分層平面圖100張,每張約1 M,為WMF文件。效率對(duì)比如表1、2所示,可以看出,對(duì)于Word成果報(bào)告的定制,相較于VBA,本文方法在表格填寫方面效率提升10倍以上,但圖片插入隨著文件的增大而效率有所降低,總體來(lái)說(shuō),本文方法效率提升了兩倍以上;對(duì)于Excel成果報(bào)告的定制,相較于VBA,本文方法在表格填寫方面效率提升了約28倍,圖片插入效率提升了約27倍,總體來(lái)說(shuō),本文方法效率提升了約27倍;對(duì)于用戶體驗(yàn)方面,VBA運(yùn)行時(shí)若用戶進(jìn)行其他操作則容易導(dǎo)致結(jié)果出錯(cuò),而本文方法全程后臺(tái)運(yùn)行,不影響用戶其他操作,用戶體驗(yàn)更好。

      表1 Word效率對(duì)比分析/ms

      表2 Excel效率對(duì)比分析/ms

      5 結(jié) 語(yǔ)

      本文采用NPOI和DocX開源庫(kù)實(shí)現(xiàn)了不依賴Microsoft Oきce軟件的測(cè)繪成果報(bào)告高效定制,解決了傳統(tǒng)VBA方法存在的兼容性差、效率偏低等問題,且代碼簡(jiǎn)潔、便于維護(hù)。此外,本文方法支持將開發(fā)的模塊作為后臺(tái)服務(wù)部署于服務(wù)器,不占用客戶端資源,響應(yīng)并發(fā)用戶需求,具有更好的用戶體驗(yàn)。然而,DocX在處理大文件時(shí),會(huì)出現(xiàn)效率降低的情況,但相對(duì)于其輕量級(jí)插件的定位來(lái)說(shuō),總體效率和優(yōu)勢(shì)是較明顯的。

      猜你喜歡
      單元格開源表格
      《現(xiàn)代臨床醫(yī)學(xué)》來(lái)稿表格要求
      玩轉(zhuǎn)方格
      玩轉(zhuǎn)方格
      統(tǒng)計(jì)表格的要求
      統(tǒng)計(jì)表格的要求
      統(tǒng)計(jì)表格的要求
      五毛錢能買多少頭牛
      淺談Excel中常見統(tǒng)計(jì)個(gè)數(shù)函數(shù)的用法
      西部皮革(2018年6期)2018-05-07 06:41:07
      大家說(shuō):開源、人工智能及創(chuàng)新
      開源中國(guó)開源世界高峰論壇圓桌會(huì)議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
      科尔| 镇江市| 弋阳县| 太湖县| 镇巴县| 河西区| 巩留县| 偏关县| 余江县| 澄城县| 宣武区| 康保县| 准格尔旗| 怀远县| 永福县| 新乡市| 黑水县| 平南县| 宁明县| 云霄县| 泰州市| 都兰县| 达州市| 成武县| 卫辉市| 治多县| 句容市| 内江市| 浮梁县| 怀仁县| 武强县| 施秉县| 礼泉县| 桂东县| 乌拉特前旗| 稷山县| 瑞金市| 平远县| 通辽市| 垫江县| 凉山|