简介:本文详细介绍了如何使用Python结合百度PaddleOCR实现表格文字识别,并将结果自动保存为Excel文件,适合开发者及企业用户快速掌握OCR与数据处理技术。
在数字化转型过程中,企业常面临纸质表格或扫描件中的数据提取问题。传统手动录入效率低、易出错,而自动化表格识别技术可显著提升数据处理效率。百度PaddleOCR作为开源OCR工具库,支持中英文、多语言及复杂表格结构的识别,结合Python的灵活数据处理能力,可实现从图像到结构化数据的完整流程。本文将围绕“Python+百度PaddleOCR表格文字识别生成Excel”这一核心需求,提供从环境配置到代码实现的完整方案。
PaddleOCR是百度开源的OCR工具库,支持多种识别任务:
Python通过openpyxl或pandas库可轻松操作Excel文件,支持数据清洗、格式调整及批量写入,与PaddleOCR的输出结果无缝对接。
pip install paddlepaddle paddleocr
from paddleocr import PaddleOCRocr = PaddleOCR(use_angle_cls=True, lang="ch") # 中文识别print("PaddleOCR安装成功")
pip install openpyxl pandas
openpyxl:适合精细控制Excel格式(如单元格样式、合并单元格)。pandas:适合快速数据写入,但格式控制较弱。
from paddleocr import PaddleOCR, draw_ocrimport cv2def recognize_table(image_path):ocr = PaddleOCR(use_angle_cls=True, lang="ch", table_engine="en") # 启用表格引擎result = ocr.ocr(image_path, cls=True, table=True) # cls=True启用方向分类return result# 示例调用image_path = "table.jpg"results = recognize_table(image_path)
table_engine="en":支持中英文表格识别。table=True:启用表格结构解析。PaddleOCR返回的表格结果为嵌套列表,需转换为结构化数据:
def parse_table_result(results):table_data = []for line in results[0]["data"]["table"]:row_data = []for cell in line["cell"]:row_data.append(cell["text"])table_data.append(row_data)return table_data# 示例调用table_data = parse_table_result(results)print("解析后的表格数据:", table_data)
openpyxl(推荐)
from openpyxl import Workbookdef save_to_excel(table_data, output_path):wb = Workbook()ws = wb.activefor row in table_data:ws.append(row)wb.save(output_path)# 示例调用save_to_excel(table_data, "output.xlsx")
pandas(适合大数据量)
import pandas as pddef save_to_excel_pandas(table_data, output_path):df = pd.DataFrame(table_data[1:], columns=table_data[0]) # 第一行作为表头df.to_excel(output_path, index=False)# 示例调用save_to_excel_pandas(table_data, "output_pandas.xlsx")
concurrent.futures并行处理多张图片。
def preprocess_image(image_path):img = cv2.imread(image_path)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)_, binary = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY)cv2.imwrite("preprocessed.jpg", binary)return "preprocessed.jpg"
pdf2image将PDF转为图像后处理。lang参数为"fr"、"ja"等支持其他语言。本文通过Python结合百度PaddleOCR,实现了从表格图像到Excel文件的自动化流程。关键步骤包括:
PaddleOCR的表格识别功能。openpyxl或pandas生成Excel。建议:
openpyxl保留格式。通过本文方法,开发者可快速构建高效的表格识别系统,适用于多种业务场景。