02 UIPath分析PDF文檔並導出Excel


前言:

     今天,來處理一個曾經遇到過的問題,即從pdf文檔中讀取內容,然后導入到excel中,這個也是我們經常遇到的,特別是一些經常出入貨的公司,這種文件又多,手工輸入又是很繁瑣。用Uipath自動化來處理正好合適。

需求:

從PDF文檔中提取指定字段,並存入excel中。如下圖發票:

需要把紅色圈起的部分提取出來,存入excel中,excel的格式和圖中格式一樣。本次只處理提取這部分,其它的大家可以下來后再嘗試。

 

操作步驟:

1、打開uipath,新建流程GetPDF2Excel。

2、拖入構建數據表活動,然后點擊活動上的“數據表”,可以看到如下的界面:

 

3、構造字段,此字段是最終輸出Excel的內容:

 

4、從左側活動中拖入“讀取PDF文本”(若是沒有PDF活動,需要安裝,具體的安裝過程,見后面對PDF Activities的安裝

5、設置PDF的相關內容:

此處主要設置這幾項,若是pdf有多頁,可以在范圍中進行設置讀取那一部分。

6、添加一個“寫入行”活動,用來查看我們讀取PDF的內容是否成功:

7、點擊“運行”,查看執行的結果:

從此圖中可以看到,發票上的文字都被提取了出來,需要導出的內容就是紅色方框中的部分。后面就是怎么把這些內容轉換成需要的內容了。

8、先把前面無關的部分去除掉,使用“賦值”活動,這里我家定位到“*移動通信設備*”,從這里開始截取。

 

 

9、運行看處理的結果:

 

開頭無關的內容已經去除了。

10、去除后續無關的內容,從內容可以看到,我們要取的內容占了三行,而第四行又和第一行類似,因此,我們繼續用“*移動通信設備*”分割,不過這次是從新字符串的頭開始取。再使用一個“賦值”活動:

此處,indexof的第二個參數是開始查找的位置,可以根據長度來,寫成

“去除開頭.Substring(0, 去除開頭.IndexOf("*移動通信設備*", "*移動通信設備*".Length))”

11、這次運行后的結果如下:

此時,已經非常接近我們所要的結果了。

12、把字符串用“回車換行”進行分割,再使用一個“賦值”活動:

注意,此時有小感嘆號,表示類型不對,split函數使用后,得到的結果是個數組類型,所以Lines的定義必須是數組類型,在參數中設置類型:

 

最終結果如下:

感嘆號消失了。

13、使用遍歷循環查看下得到的結果:

 

可以發現結果是正確的,但是多了幾行的空行。

14、分割字符串時,加入StringSplitOptions.RemoveEmptyEntries選項就能達到去除空白行的結果,如下圖:

到此處,剩下的數據已經不多了,不過第一行(顯示中的0行)還需要再次分割才能得到結果。而把第二、三行拼接在第一行第一個字段下就可以了,下面我們就來做這個操作。

15、 分割第一行,

可以看到,分割后的結果是正確的,不過卻多了好幾項,原因是把名稱字段內本身存在空格,這里為了方便,我們就采取簡單的處理辦法,把需要合並到一起的項合並起來.

16、合並第一列的數據:

然后與發票中的數據對照:

可以看到,第一行第一列的數據已經處理成功,然后把第二、三行的合並過來就可以了;

17、獲得完整的名稱,使用一個“賦值”活動,操作如下:

完整的名稱到此就獲取完成,

18、把獲取到的數據插入到數據表中:

19、把結果寫入excel中:

20、查看Exce的結果

對比發票上的相關數據:

數據是一致的,大功告成。

 

 

PS:

PDF Activities的安裝

1、選擇管理程序包:

2、在搜索框中輸入PDF,按如下順序操作:

 

3、接受“許可證接受”

4、可以在活動中,應用程序集成下面看到PDF控件,即表示安裝成功,如下圖:

=======================================

本篇內容有些多,大家可以參考使用,在閱讀過程中若是有什么不明白的,可以在下方討論區留言。

也可以關注我的微信公眾號:IT人的成長

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM