作者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/cn.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