规划项目化,项目清单化
http://www.chengdu.gov.cn/chengdu/c128551/zt_jhqb.shtml
下载成都市官网城市机会清单发布大厅的清单,将之转换成excel,后续有时间实现多份清单的关键词搜索功能。待开发ing……
那么今天的任务就是实现pdf转excel
以成都市2022新经济赋能智慧蓉城建设城市机会清单为例子,我自己命名为first.pdf,并且存到了桌面。

#调包侠第一步
import pandas as pd
import numpy as np
import pdfplumber
#路径和命名
path = r'C:\Users\ty\Desktop\first.pdf'
pdf = pdfplumber.open(path)
df_gov_demand =pd.DataFrame()
df_gov_suply =df_gov_demand.copy()
df_com_demand=df_gov_demand.copy()
df_com_suply = df_gov_demand.copy()
# 每个清单的column不一样,但是一致的是都是每页表格的第一行table[0]
#为什么不写成函数?有时间再写,因为我天生不是天才码农,哭哭
writer = pd.ExcelWriter(r"C:\Users\ty\Desktop\target.xlsx")
for page in pdf.pages[1:47]:
print (page)
# 获取当前页面的全部文本信息,包括表格中的文字
# print(page.extract_text())
for table in page.extract_tables():
# print(table)
df_gov_demand=df_gov_demand.append(pd.DataFrame(table[1:],columns=table[0]),ignore_index=True)
df_gov_demand.to_excel(writer,sheet_name='df_gov_demand' ,encoding ='utf-8')
for page in pdf.pages[48:64]:
print (page)
for table in page.extract_tables():
# print(table)
df_gov_suply=df_gov_suply.append(pd.DataFrame(table[1:],columns=table[0]),ignore_index=True)
df_gov_suply.to_excel(writer,sheet_name='df_gov_suply' ,encoding ='utf-8')
for page in pdf.pages[65:88]:
print (page)
for table in page.extract_tables():
# print(table)
df_com_demand=df_com_demand.append(pd.DataFrame(table[1:],columns=table[0]),ignore_index=True)
df_com_demand.to_excel(writer,sheet_name='df_com_demand' ,encoding ='utf-8')
for page in pdf.pages[89:129]:
print (page)
for table in page.extract_tables():
df_com_suply=df_com_suply.append(pd.DataFrame(table[1:],columns=table[0]),ignore_index=True)
df_com_suply.to_excel(writer,sheet_name='df_com_suply' ,encoding ='utf-8')
writer.save()
结果弄好之后,这个表怎么不规则,我勒个擦,对不起是我的锅,同一个类型的表格竟然指标不一致。
Q:而且还有那么多合并表怎么搞???
A:还算简单,定位空白格,然后集体等于上一行的那个单元格,后续就不合并了,合并纯属为了好看!!!俺累了……

(后续大家搜索的话,大家有啥建议,是我都整理好表格再挂云服务器,还是做个数据库,实时更新?貌似有点难……)俺不知道