[Python]如何將批量的PDF資料匯總為Excel清單?
2021/6/14 12:23:16
本文主要是介绍[Python]如何將批量的PDF資料匯總為Excel清單?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在現今電腦化(或稱無紙化)的辦公環境中,往往因為工作需求需將一些資料在不同辦公文件之間轉移,如若需要呈現簡報(.ppt),可能需將word的部分文字複製到ppt上;若需要分析論文中的表格數據,可能需將pdf轉換成excel。然而,若僅僅是少數文件的轉換,或許可簡單用複製和貼上的功能來處理,但若是批量轉換的工作,為了避免重複性勞力和容易出錯,藉由工具來進行批量轉換才是正確的工作方式。
想像一個情境,當企業辦理講座活動,對各個應邀單位發出報名表,當多張報名表回收時,即需要一個匯總清單,以進一步了解此次參與講座的學員背景/企業寶號/職稱等等。下列是以該情境作為範例,在範例進行之前,先簡易描述完成該項工作的工具結構,如下。
1.在Python中,常用於處理PDF的安裝包有兩個,pdfminer3k和pdfplumber,差異簡易描述如下:
pdfminer3k:將PDF作純文本轉換工作,常用於自然語言分析工作上。
pdfplumber:可按頁數處理PDF檔案,同時可將PDF中的表格輸出成list。
2.另外,針對PDF讀取結果,Python需要將結果寫入excel檔案中,可藉由操作excel的安裝包, openpyxl,來處理。
3.為了搭配自動找尋pdf檔案的數量,需要借用安裝包,os,來操作文件和目錄系統。
批量轉換報名表(.pdf),並匯總成excel檔案的簡易範例如下:
a.報名表的原pdf截圖如下,共有三個pdf檔案。
b.幾個主要的代碼段,說明如下:
1.為了因應檔案個數未知且達成批量轉換,因此借用os指令在資料夾中篩選出目標檔案(.pdf),如# find .pdf file in the folder的代碼段。
2.將pdf匯入pyrhon中,並將每個pdf檔案中的姓名/職稱/手機/email資料抽取和轉換成list,如# pdf import的代碼段。
3.將抽取資料存入excel檔案中,其中包含定義sheet和表頭名稱,如# 開啟空白excel, 並存入pdf讀取表格資料的代碼段。
import pdfplumber from openpyxl import Workbook # 存取xlsx的安裝包 import os # list files in the path file_list = os.listdir() # find .pdf file in the folder pdf_file = list() # build empty list for file_name in file_list: sub_name = file_name.split('.')[1] if sub_name == 'pdf': pdf_file.append(file_name) # pdf import pdf_table = list() name = list() title = list() mobile = list() email = list() for i in range(len(pdf_file)): pdf = pdfplumber.open(pdf_file[i]) page = pdf.pages[0] # get page.1 pdf_table.append(page.extract_table()) if pdf_table[i][2][1] != '': name.append(pdf_table[i][2][1]) title.append(pdf_table[i][3][1]) mobile.append(pdf_table[i][4][1]) email.append(pdf_table[i][5][1]) # 開啟空白excel, 並存入pdf讀取表格資料 workbook = Workbook() sheet = workbook.active sheet.title = "報名匯總" # 設定A1:姓名 B1:職務 C1:手機 D1:E-mail row0 = ["姓名", "職務", "手機", "E-mail"] sheet.append(row0) for i in range(len(name)): sheet.cell(row=2 + i, column=1).value = name[i] sheet.cell(row=2 + i, column=2).value = title[i] sheet.cell(row=2 + i, column=3).value = mobile[i] sheet.cell(row=2 + i, column=4).value = email[i] workbook.save(filename="報名清單.xlsx")
c.輸出結果如下圖。
-----如果文章對您有幫助,打開微信掃一掃,請作者喝杯咖啡。-----
这篇关于[Python]如何將批量的PDF資料匯總為Excel清單?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础