Python 解析财务报表中的表格数据(pdf to tables)

探讨使用PdfBox、iText、Tika等组件解析PDF表格数据的局限性,以及尝试使用Python进行解析所面临的难题,包括换行、表头、单元格数量不一等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解析PDF常用组件(PdfBox、iText、Tika等)都无法将表格数据解析成有规则的格式。解析后格式基本是TEXT、XHTML等导致处理表格数据变的非常复杂,基本需要全枚举+正则才能处理个70-80%。最近看到Python可以解析表格于是尝试了一下,不过要想让数据可用,还存在很多问题待解决。
PDF文件截图
在这里插入图片描述

Tika解析PDF文件
1、TEXT格式

Tika tika = new Tika();
tika.setMaxStringLength(100 * 1024 * 1024);
try (InputStream stream = new FileInputStream(new File("600060_2018_zB.pdf"))) {
	return tika.parseToString(stream);
}

Text格式解析结果
在这里插入图片描述
2、XHTML格式

		
ContentHandler handler = new ToXMLContentHandler();
AutoDetectParser parser = new AutoDetectParser();
Metadata metadata = new Metadata();
try (InputStream stream = new FileInputStream(new File("600060_2018_zB.pdf"))) {
	parser.parse(stream, handler, metadata);
	return handler.toString();
}

XHTML格式解析结果
在这里插入图片描述

Python解析表格
1、前十名股东表格原始数组在这里插入图片描述

2、处理过的财务指标
在这里插入图片描述

3、处理过单位后的快报数据
在这里插入图片描述
暂时还不通用存在一些问题,如换行、表头、每列占用单元格个数不统一、分页等。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值