国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Python的Excel文檔批量轉(zhuǎn)換生成自定義形式Word文檔工具的實(shí)現(xiàn)和應(yīng)用

2021-12-08 12:24高熾揚(yáng)崔寧寧
數(shù)字通信世界 2021年11期
關(guān)鍵詞:測試用例示意圖文檔

高熾揚(yáng),王 健,崔寧寧

(北京賽迪軟件測評工程技術(shù)中心有限公司,北京 100000)

1 概述

電子表格文檔以數(shù)據(jù)展示直觀、操作使用便捷等特點(diǎn),多年以來,在各行各業(yè)中廣泛的使用。Excel文檔作為當(dāng)前主流的電子表格文檔,在某些使用場景下,可以作為一個(gè)小型的數(shù)據(jù)庫,來存儲各種業(yè)務(wù)的原始基礎(chǔ)數(shù)據(jù)。這些基礎(chǔ)數(shù)據(jù)如果要以書面正式的方式進(jìn)行展示,通常需要用Word文檔以特定的組織形式來完成。本文通過對Excel文檔轉(zhuǎn)換生成Word文檔的需求進(jìn)行分析,設(shè)計(jì)實(shí)現(xiàn)了一款基于Python的Excel文檔批量轉(zhuǎn)換生成自定義形式Word文檔的工具(以下簡稱“Excel文檔轉(zhuǎn)Word文檔工具”),并給出了一些該工具的應(yīng)用場景,以便于提升相關(guān)領(lǐng)域文檔工作的效率。

2 設(shè)計(jì)工具的背景

在軟件測試領(lǐng)域,進(jìn)行測試需求分析與策劃、測試設(shè)計(jì)與實(shí)現(xiàn)以及測試執(zhí)行時(shí),使用電子表格軟件編制測試項(xiàng)、測試用例,記錄測試執(zhí)行結(jié)果,最終形成電子表格文檔,目前是一種相對簡單、高效的方式。在測試文檔的生成過程中,Excel文檔和Word文檔是最常用的文檔,在形成測試相關(guān)的Excel文檔后,只是完成了基礎(chǔ)數(shù)據(jù)的匯總的第一步,通常書面正式提交測試文檔成果時(shí),需要將Excel文檔按照相關(guān)標(biāo)準(zhǔn)、要求,轉(zhuǎn)為特定形式Word文檔,以展示相關(guān)的數(shù)據(jù)信息。如圖1所示,例了測試過程中一種Excel文檔轉(zhuǎn)換生成Word文檔的場景。

圖1 Excel文檔轉(zhuǎn)換生成Word文檔示例圖

實(shí)現(xiàn)Excel文檔轉(zhuǎn)換生成Word文檔,通??梢允褂肕icrosoft Word的“郵件合并”功能,通過選取包含基礎(chǔ)信息的Excel文檔作為數(shù)據(jù)源,在定義了合并域的Word模板中,完成Excel文檔到Word文檔的轉(zhuǎn)換生成?!班]件合并”功能對數(shù)據(jù)字段簡單、模板固定的Excel和Word文檔轉(zhuǎn)換生成相對容易完成,但是對于數(shù)據(jù)字段較多,模板經(jīng)常變更的Excel和Word文檔,每次轉(zhuǎn)換生成都需重新選擇數(shù)據(jù)源和定義模板,比較容易出錯,并且在Excel文檔生成Word文檔之后,往往還需要進(jìn)行大量的人工格式調(diào)整、文檔整合的工作,難以一次性生成所需要的Word文檔,效率不高。

基于Python實(shí)現(xiàn)的Excel文檔轉(zhuǎn)Word文檔工具,無須依賴特定表頭的Excel文檔,只要按照一定的規(guī)則在Word模板文檔中引用Excel文檔中表頭的內(nèi)容,通過工具即可完成Word文檔的批量轉(zhuǎn)換生成功能,解決了由于Excel文檔數(shù)據(jù)字段較多,Word文檔模板經(jīng)常變更等原因,導(dǎo)致的文檔轉(zhuǎn)換生成效率低下的問題。

3 工具的實(shí)現(xiàn)

Excel文檔轉(zhuǎn)Word文檔工具基于Python的原生庫tkinter、第三方庫xlrd和python-docx-template實(shí)現(xiàn)。其中,tkinter庫用于人機(jī)交互界面的制作,xlrd庫用于從Excel文檔讀取數(shù)據(jù)和格式化的信息。python-docx-template庫用于讀取使用類Jinja2語法標(biāo)記過的Word模板文檔。工具包括輸入模塊、文檔生成處理模塊和輸出模塊。工具的處理流程,如圖2 所示。

圖2 Excel文檔轉(zhuǎn)Word文檔工具處理流程示意圖

輸入模塊需要準(zhǔn)備Excel數(shù)據(jù)文檔和Word模板文檔。

(1)Excel數(shù)據(jù)文檔中,首行作為表頭,其余行作為數(shù)據(jù)行,表頭可以根據(jù)需要自行訂制。如果Excel數(shù)據(jù)文檔有多個(gè)Sheet頁,則需要各Sheet頁有相同的表頭。

(2)Word模板文檔中,固定的內(nèi)容和格式可以根據(jù)需要進(jìn)行自定義,重復(fù)的內(nèi)容和格式可以使用模板標(biāo)簽進(jìn)行填充,模板標(biāo)簽采用類Jinja2的語法進(jìn)行定義,包括控制標(biāo)簽和內(nèi)容標(biāo)簽,控制標(biāo)簽可以進(jìn)行邏輯和循環(huán)的控制,內(nèi)容標(biāo)簽以變量的形式獲取Excel文檔中的數(shù)據(jù)。如:

{%p jinja2_tag%}代表段落的控制標(biāo)簽;

{%tr jinja2_tag%}代表表格行的控制標(biāo)簽;

{%tc jinja2_tag%}代表表格列的控制標(biāo)簽;

{{}}代表變量。

同時(shí),工具定義了固定的標(biāo)簽變量,包括“break”、“sheets”、“tstype”、“tables”和“allcases”等共5種?!癰reak”代表空字符,在Word文檔中起到分隔的作用;“sheets”代表一個(gè)Excel文檔所有sheet頁的數(shù)據(jù)集合,其包含兩個(gè)主要元素:測試類型(“tstype”)和單個(gè)sheet頁的行數(shù)據(jù)集合(“tables”);“allcases”代表一個(gè)Excel文檔中包含的所有行,并在每行末尾增加測試類型元素的數(shù)據(jù)集合,是區(qū)別于“sheets”的,儲存Excel文檔中全部數(shù)據(jù)的另一種形式?!皊heets”和“allcases”列表的結(jié)構(gòu),如圖3所示。

文檔生成處理模塊包括“測試項(xiàng)生成”、“測試用例記錄”功能、“報(bào)告其他文檔”和“正向追蹤表”功能。“測試項(xiàng)生成”功能,工具可以根據(jù)配置讀取Excel文檔首例值指定列的數(shù)據(jù);“測試用例記錄”功能、“報(bào)告其他文檔”和“正向追蹤表”功能,工具會讀取Excel文檔有數(shù)據(jù)的全部列;“正向追蹤表”功能,可以按照軟件需求的順序,生成軟件需求至測試需求的正向追蹤關(guān)系表。通過選擇不同的功能,可以自動切換對應(yīng)的模板。

輸出模塊可以按照規(guī)則讀入的Excel數(shù)據(jù),將表格中對應(yīng)輸入填入Word模板中含有內(nèi)容標(biāo)簽的相應(yīng)位置,通過邏輯和循環(huán)等控制標(biāo)簽的作用,進(jìn)行批量、重復(fù)處理,最終完成Word文檔的生成。工具的界面圖,如圖4所示。

圖4 Excel文檔轉(zhuǎn)Word文檔工具界面圖

4 工具的應(yīng)用

Excel文檔轉(zhuǎn)Word文檔工具采用單機(jī)運(yùn)行的方式,基于Python實(shí)現(xiàn)。由于Python的跨平臺特性,工具可以在MacOS、Linux、Windows操作系統(tǒng)上運(yùn)行使用。Excel文檔轉(zhuǎn)Word文檔工具通過自定義Excel數(shù)據(jù)文檔和Word模板的方式,不僅可以用于軟件測試文檔的轉(zhuǎn)生成,還可以用于其他類型工作文檔的轉(zhuǎn)換生成。

在軟件測試文檔生成的工作場景中,如圖5所示,為某系統(tǒng)的測試用例Excel文檔,該文檔包括“文檔審查”和“功能測試”兩個(gè)Sheet頁,Sheet頁表頭和多行數(shù)據(jù)。

圖5 測試場景輸入文檔之Excel文檔示意圖

如圖6所示,為測試用例的Word模板,在該模板中有固定的、重復(fù)的表格內(nèi)容和段落格式。通過循環(huán)控制標(biāo)簽的定義,如“{%p for sheet in sheets%}…{%p endfor%}”、“{%tr for row in sheet.tables%}…{%tr endfor%}”等,可以讓相同類型的數(shù)據(jù),按照需要的格式進(jìn)行展示;通過引用Excel文檔表頭的變量“{{row.用例名稱}}”、“{{row.用例描述}}”和“{{row.設(shè)計(jì)人員}}”等內(nèi)容標(biāo)簽可以獲取Excel文檔中對應(yīng)的數(shù)據(jù)信息。

圖6 測試場景輸入文檔之Word模板文檔示意圖

工具對“測試用例Excel文檔”和“測試用例Word模板”的處理,最終可以生成所需要的“測試用例Word文檔”,如圖7所示,生成完成后無需對Word文檔的內(nèi)容和格式進(jìn)行額外的處理,即可直接打開使用。

圖7 測試場景輸出文檔之Word生成文檔示意圖

在商務(wù)文檔生成的工作中,經(jīng)常會有根據(jù)專家名單制作若干專家邀請函的場景。如圖8所示;為專家信息Excel文檔,該文檔有一個(gè)Sheet頁,并包含表頭和多行數(shù)據(jù)。

圖8 商務(wù)場景輸入文檔之Excel文檔示意圖

如圖9所示,為專家邀請函的Word模板,在該模板中有固定的、重復(fù)的標(biāo)題、段落內(nèi)容和格式。通過循環(huán)控制標(biāo)簽的定義,如“{%p for sheet in sheets %}…{%p endfor %}”、“{%p for row in sheet.tables %}…{%p endfor %}”等,可以讓相同類型的數(shù)據(jù),按照需要的格式進(jìn)行展示;通過引用Excel文檔表頭的變量“{{row.專家姓名}}”、“{{row.會議日期}}”和“{{row.通知日期}}”等內(nèi)容標(biāo)簽可以獲取Excel文檔中對應(yīng)的數(shù)據(jù)信息。

圖9 商務(wù)場景輸入文檔之Word模板文檔示意圖

工具對“專家信息Excel文檔”和“專家邀請函Word模板”的處理,最終可以生成所需要的“專家邀請函Word文檔”,如圖10所示,生成完成后無需對Word文檔的內(nèi)容和格式進(jìn)行額外的處理。

圖10 商務(wù)場景輸出文檔之Word生成文檔示意圖

在進(jìn)行其他文檔工作時(shí),如測試報(bào)告、測試記錄的批量生成,多份表格簡歷轉(zhuǎn)換生成,名片信息的生成,物品標(biāo)簽的生成等Excel文檔轉(zhuǎn)Word文檔的應(yīng)用場景,亦可通過Excel文檔轉(zhuǎn)Word文檔工具來實(shí)現(xiàn)。

5 結(jié)束語

基于Python實(shí)現(xiàn)的Excel文檔批量轉(zhuǎn)換生成自定義形式Word文檔的工具,將復(fù)雜的文檔轉(zhuǎn)換工作簡化,解決了目前軟件測試工作中大量Excel文檔轉(zhuǎn)換為Word文檔的效率問題,節(jié)省了大量測試文檔工作時(shí)間。該工具通過對Word模板的自定義編制,還可以應(yīng)用于商務(wù)、行政等領(lǐng)域的Excel文檔轉(zhuǎn)換生成Word文檔工作,亦可提升相關(guān)領(lǐng)域文檔工作的效率。

猜你喜歡
測試用例示意圖文檔
淺談Matlab與Word文檔的應(yīng)用接口
測試用例自動生成技術(shù)綜述
有人一聲不吭向你扔了個(gè)文檔
回歸測試中測試用例優(yōu)化技術(shù)研究與探索
先畫示意圖再解答問題
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
黔西南州旅游示意圖
Word文檔 高效分合有高招
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
“三定兩標(biāo)”作好圖