作者noworneverev (小朋友)
看板EZsoft
標題[自製] PDF轉Excel
時間Sat Jun 27 16:13:07 2020
新版PDF2Excel.exe:
https://tinyurl.com/yaxku6bj
因為還滿多人下載的,再加強改寫了一下,
開放選取分割PDF表格的方式,垂直及水平各分三種切割方式:
1. lines
2. lines_strict
3. text
如果PDF的表格用「線」分欄的話,則垂直分割選「lines」,列只有文字沒有線的話,
水平分割則選「text」可達到最佳效果,一般公司上傳的財報用這種方式應可截取到
最完整的表格。
https://i.imgur.com/kxlgnhY.png
市售PDF軟體的轉Excel功能或其他線上PDF轉檔似乎都沒有這支程式轉的格式來得漂亮,
如果有此需求,可詳PDFPlumber文件連結:
https://github.com/jsvine/pdfplumber
得到更多資訊,這支程式僅用到此套件的一小部分功能。
"lines": Use the page's graphical lines — including the sides of rectangle
objects — as the borders of potential table-cells.
"lines_strict": Use the page's graphical lines — but not the sides of
rectangle objects — as the borders of potential table-cells.
"text": For vertical_strategy: Deduce the (imaginary) lines that connect the
left, right, or center of words on the page, and use those lines as the
borders of potential table-cells. For horizontal_strategy, the same but using
the tops of words.
============================================================================
# PDF2Excel用途
將PDF檔案裡的表格轉成Excel格式輸出,並搭配VBA將格式轉成可運算的儲存格。
## 下載(免安裝)
PDF2Excel.exe:
https://tinyurl.com/yaxku6bj
及搭配使用的VBA :
https://tinyurl.com/yd7t5m9b
## Demo
短片演示:
https://i.imgur.com/WCbBVIe.gif
影片演示:
https://youtu.be/0vEI2oiTanM (含安裝VBA增益集)
## 使用限制
此程式適用於無須OCR的PDF,且檔案裡的表格必須要有格線,僅測試於Windows作業系統
。
## 使用方法
點開PDF2Excel.exe,無須安裝,開啟程式可能會需要點時間,選擇PDF檔案存放的資料夾
,批次轉換資料夾內所有PDF檔案成Excel檔案,只轉換PDF檔案裡的表格,文字區塊一律
跳過,Excel工作表命名原則以PDF頁碼當作工作表名稱,例如轉換第一頁的表格,
輸出的Excel工作表名稱為"Sheet1";若一頁裡偵測到多個表格,例如第三頁有兩個表格
,輸出"Sheet3_1"、"Sheet3_2",PDF檔案的表格若無格線將無法轉出。
輸出Excel檔案後,使用上方提供的增益集(Text2Column.xlam),將字串轉成Excel可運算
的儲存格。
轉換僅在本地端執行,無須擔心資料外洩,若有疑慮請詳下方原始碼。
## 開發源由
近幾天知道好像有客戶在提供PBC時會是用PDF檔案提供,雖然自己從來沒遇過,
但曾身為查帳員,光想像就有點想哭QAQ,所以花了點時間寫這支小程式,
此程式以Python開發,使用轉換精準度最高的函式庫,再搭配另一支VBA小程式,
可快速將檔案轉成查帳可使用的格式。
## 給開發者
以Python寫成,關鍵的轉換只有十幾行程式,若已有Python環境可參考
PDFPlumber github的文件自行客製參數,若熟pandas可以再更進一步依照提取出的
資料另做處理。
pip install pdfplumber
pip install pandas
開放原始碼:
https://github.com/noworneverev/PDF2Excel
若覺得這個程式對你有幫助,可以幫小弟按個星星我會很開心<( ̄︶ ̄)>
--
Accoding:
https://www.facebook.com/AccodingTW/
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.137.79 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/EZsoft/M.1593245594.A.2CC.html
1F:推 shala: 推 06/27 21:18
2F:推 espresso1: 很實用! 06/27 21:32
3F:推 paulri8924: 推 06/28 13:56
4F:推 violetflames: 超級實用,內建的表格轉換每次都不太準 06/29 13:10
5F:推 dx90c: 推 06/30 13:21
6F:推 kichitai: 讚 06/30 19:44
7F:→ bcs: 查帳員也要會寫scrpit(●—●) 07/01 14:13
※ 編輯: noworneverev (223.136.144.242 臺灣), 07/04/2020 21:01:19
8F:推 EDGE: 大推~ 07/08 20:40
9F:推 tinyfan: 雖然不是很懂,但先推再說 07/09 19:35