做網(wǎng)站被騙了怎么辦搭建網(wǎng)站工具
要批量提取增值稅發(fā)票的關(guān)鍵信息并將其導(dǎo)出為 Excel 文件,可以使用 Python 腳本結(jié)合 pdfplumber
(用于解析 PDF 內(nèi)容)、pandas
(用于處理數(shù)據(jù)并導(dǎo)出 Excel)等庫來實(shí)現(xiàn)。以下是實(shí)現(xiàn)這一目標(biāo)的詳細(xì)步驟。
1. 環(huán)境設(shè)置
首先,需要安裝所需的 Python 庫:
pip install pdfplumber pandas openpyxl
2. 編寫 Python 腳本
import pdfplumber
import pandas as pd
import os# 要處理的PDF文件夾路徑
pdf_folder = 'path_to_your_pdf_folder'
# 輸出Excel文件路徑
output_excel = 'output.xlsx'# 定義存儲提取信息的列表
data = []# 遍歷文件夾中的所有PDF文件
for filename in os.listdir(pdf_folder):if filename.endswith('.pdf'):pdf_path = os.path.join(pdf_folder, filename)with pdfplumber.open(pdf_path) as pdf:# 假設(shè)發(fā)票信息在第一頁,解析第一頁內(nèi)容first_page = pdf.pages[0]text = first_page.extract_text()# 提取關(guān)鍵信息,下面是一些假設(shè)的示例正則表達(dá)式invoice_number = find_value_by_keyword(text, "發(fā)票號碼")invoice_date = find_value_by_keyword(text, "開票日期")buyer_name = find_value_by_keyword(text, "購買方名稱")buyer_tax_id = find_value_by_keyword(text, "購買方納稅人識別號")service_name = find_value_by_keyword(text, "貨物或應(yīng)稅勞務(wù)、服務(wù)名稱")quantity = find_value_by_keyword(text, "數(shù)量")unit_price = find_value_by_keyword(text, "單價(jià)")amount = find_value_by_keyword(text, "金額")tax_rate = find_value_by_keyword(text, "稅率")tax_amount = find_value_by_keyword(text, "稅額")total_amount = find_value_by_keyword(text, "價(jià)稅合計(jì)")seller_name = find_value_by_keyword(text, "銷售方名稱")seller_tax_id = find_value_by_keyword(text, "銷售方納稅人識別號")# 將提取的信息添加到列表中data.append({"PDF文件名": filename,"發(fā)票號碼": invoice_number,"開票日期": invoice_date,"購買方名稱": buyer_name,"購買方納稅人識別號": buyer_tax_id,"服務(wù)名稱": service_name,"數(shù)量": quantity,"單價(jià)": unit_price,"金額": amount,"稅率": tax_rate,"稅額": tax_amount,"價(jià)稅合計(jì)": total_amount,"銷售方名稱": seller_name,"銷售方納稅人識別號": seller_tax_id})# 將數(shù)據(jù)導(dǎo)出到Excel
df = pd.DataFrame(data)
df.to_excel(output_excel, index=False)print(f"提取完成,結(jié)果已保存到 {output_excel}")def find_value_by_keyword(text, keyword):# 定義一個(gè)簡單的提取函數(shù),實(shí)際需要根據(jù)發(fā)票格式調(diào)整lines = text.split('\n')for i, line in enumerate(lines):if keyword in line:return line.replace(keyword, '').strip()return ""
3. 腳本說明
- PDF文件名: 使用
os.listdir
遍歷指定文件夾中的所有 PDF 文件。 - PDF解析: 使用
pdfplumber
打開并讀取 PDF 內(nèi)容,假設(shè)發(fā)票內(nèi)容位于第一頁。 - 關(guān)鍵字提取: 使用
find_value_by_keyword
函數(shù)從文本中提取關(guān)鍵信息,該函數(shù)可以根據(jù)實(shí)際情況調(diào)整正則表達(dá)式。 - 數(shù)據(jù)存儲: 將提取的信息存儲在列表中,最后將列表轉(zhuǎn)換為 DataFrame 并導(dǎo)出為 Excel 文件。
4. 注意事項(xiàng)
- 發(fā)票格式: 此示例假設(shè)發(fā)票的格式是一致的,如果格式有變動,可能需要調(diào)整關(guān)鍵字提取的邏輯。
- 正則表達(dá)式: 如果發(fā)票內(nèi)容較復(fù)雜,可以使用正則表達(dá)式進(jìn)行更精準(zhǔn)的匹配。
5. 運(yùn)行腳本
將腳本保存為 .py
文件,修改 pdf_folder
路徑為你的 PDF 文件夾路徑,運(yùn)行腳本后,提取的信息將會被導(dǎo)出為一個(gè) Excel 文件。