• 城市机会清单中处处是机遇——实现pdf转excel


    项目是做不完的,生活处处是项目

    规划项目化,项目清单化
    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 
    
    • 1
    • 2
    • 3
    • 4
    #路径和命名
    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]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    #为什么不写成函数?有时间再写,因为我天生不是天才码农,哭哭
    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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    结果弄好之后,这个表怎么不规则,我勒个擦,对不起是我的锅,同一个类型的表格竟然指标不一致。

    Q:而且还有那么多合并表怎么搞???
    A:还算简单,定位空白格,然后集体等于上一行的那个单元格,后续就不合并了,合并纯属为了好看!!!俺累了……
    在这里插入图片描述
    (后续大家搜索的话,大家有啥建议,是我都整理好表格再挂云服务器,还是做个数据库,实时更新?貌似有点难……)俺不知道

  • 相关阅读:
    #816 Div2E. Long Way Home 斜率优化dp
    前端 javascript 基础常见面试题
    mac 安装java1.8
    WinUI 3 踩坑记:从创建项目到发布
    Hbuilder打包安卓H5-APP,APP与程序分离,更新无需重新打包
    RustDay04------Exercise[21-30]
    LongAdder(高性能原子累加器)源码分析
    windows下Python将程序打包成exe文件
    java计算机毕业设计网上报名及成绩查询系统源程序+mysql+系统+lw文档+远程调试
    通过解析库探究函数式抽象代价
  • 原文地址:https://blog.csdn.net/yun5945/article/details/125512320