(连载0.1)实践报告:在深度系统用Python3对上市公司年度报告财务报表进行提取

一些必要的前期工作

上市公司的年度报告在证交所网页下载pdf(厉害的同学可以尝试使用爬虫)
使用Acrobat Reader DC进行pdf格式转化(在Windows虚拟机环境下)
打开word(Ctrl+H查询命令定位“合并资产负债表”,Ctrl+Shift+Home选中删除前面部分,再次定位“母公司权益变动表”Ctrl+Shift+End选中后面部分Delete删除)
安装docx、openpyxl模块

运行代码

sudo pip3 install docx
sudo pip3 install openpyxl
## 代码粘贴如下
#不用管合并单元格问题
import docx as d
import openpyxl as o
beginyear=input('起始年份\n')
endyear=input('最后年份\n')
headname=input("公司简称\n")
tle=['合并资产负债表','母公司资产负债表','合并利润表','母公司利润表','合并现金流量表','母公司现金流量表','合并所有者权益变动表','母公司所有者权益变动表']
path=[]
for i in range(int(beginyear),int(endyear)+1,1):
    tmp=headname+str(i)   #文件名
    path.append(tmp) 
for p in path[:]:
    pp='/home/huangzefang/Documents/'+p+'.docx' #文件路径
    mywb = o.Workbook() #建立表格
    i=-1 #sheet页码
    doc=d.Document(pp)#读入文件
    tabs=doc.tables#获取文件中的表格集
    k=0 #行坐标
    for tab  in tabs[:]:
        rows=tab.rows
        for  row in rows[:]:   # 读每行
              j=64  #ASCII码转化后表示Excel纵坐标
              k+=1
              cells=row.cells
              for cell in cells[:]:  # 读一行中的所有单元格
                    j+=1
                    c = cell.text
                    if c=='项目':
                        i+=1
                        mywb.create_sheet(index=i,title=tle[i])
                        mysheet = mywb.get_sheet_by_name(tle[i])
                        k=1  #重置行数               
                    tmp=chr(j)+str(k)
                    mysheet[tmp] = c
    pp='/home/huangzefang/Documents/'+p+'.xlsx'
    mywb.save(pp)

同学需要着重修改的是文件路径
年度报告中的每张财务报表实际上是切分成多个表格的,A1处的项目作为表头标志。
运行结果如下图所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无敌的前任

您的支持将使我的探索更进一步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值