ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: whuihui

[分享] excel VBA 读取PDF格式的表格

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-12-24 13:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢楼主分享

TA的精华主题

TA的得分主题

发表于 2021-12-24 13:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
whuihui 发表于 2021-12-24 12:17
把需要测试的附件发出来

没事儿,我自己玩儿吧,加一个split拆分一下再写入单元格就好了,我只是想知道楼主是不是有更好的办法

TA的精华主题

TA的得分主题

发表于 2021-12-24 14:01 | 显示全部楼层
本帖最后由 lkqsmxw 于 2021-12-24 14:11 编辑

楼主您好,我给改了一下,望见谅。

读取pdf表格.rar

19.96 KB, 下载次数: 101

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-12-24 16:03 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-12-24 19:54 | 显示全部楼层
lkqsmxw 发表于 2021-12-24 14:01
楼主您好,我给改了一下,望见谅。

你是不是通过压缩excel文件为zip,然后再修改里面password的bin文件破解的密码

TA的精华主题

TA的得分主题

发表于 2021-12-25 08:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub ReadFromPDF()
    Application.DisplayAlerts = False
    Dim wApp As New Word.Application
    Dim wDoc As Word.Document
    Dim pg As Word.paragraph
    Dim wLine As String
    Dim tbCount As Integer
    Dim tbindx As Integer
    Dim lr As Long
    Dim tRow As Long, tCol As Long
    Dim fopen As FileDialog
    Set fopen = Application.FileDialog(msoFileDialogFilePicker)
    wApp.Visible = False
    Call SelectFile(WJM)
    '''fopen.InitialFileName = "*.pdf"
    '''fopen.Show
    WJM = fopen.SelectedItems(1)
    Set wDoc = wApp.Documents.Open(WJM, False)                 ''''Open(ThisWorkbook.Path & "\" & WJM & ".pdf", False)
    tbCount = wDoc.Tables.Count
    If wDoc.Tables.Count > 0 Then
        For tbindx = 1 To tbCount
            With wDoc.Tables(tbindx)
                lr = Sheet1.Range("A" & Rows.Count).End(xlUp).Row + 1
                Cells(lr, 1).Value = "table-" & tbindx
                For tRow = 1 To .Rows.Count
                    lr = Sheet1.Range("a" & Rows.Count).End(xlUp).Row
                    For tCol = 1 To .Columns.Count
                        On Error Resume Next
                        Cells(lr + 1, tCol).Value = Format(WorksheetFunction.Trim(WorksheetFunction.Clean(.Cell(tRow, tCol).Range.Text)), "@")
                        On Error GoTo 0
                    Next tCol
                Next tRow
            End With
        Next tbindx
    End If
    wDoc.Close False
    Set wApp = Nothing
    wApp.Quit
    Set wApp = Nothing
    Application.DisplayAlerts = False
End Sub


只能应表格这种很规范的数据,像发票就不行了。
发票的格式没有统一,不同省市的发票看打印结果是一样的,但后台的格式却五花八门,有的还用了文本框,有的没用。
PDF发票要整理出来就比较有挑战性。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-12-25 09:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
貌似对于不规则表格还认不到,比如合并单元格

TA的精华主题

TA的得分主题

发表于 2021-12-25 09:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 acc091 于 2021-12-25 09:14 编辑
andysky 发表于 2021-12-25 08:09
Sub ReadFromPDF()
    Application.DisplayAlerts = False
    Dim wApp As New Word.Application

是的,调试了好久都没办法归纳逻辑,我是通过转格式,再合并所有字符,再用正则提取,但只能提取比较固定的信息

TA的精华主题

TA的得分主题

发表于 2021-12-25 09:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
whuihui 发表于 2021-12-24 19:54
你是不是通过压缩excel文件为zip,然后再修改里面password的bin文件破解的密码

肯定不是啦,不要在意这个东西。

TA的精华主题

TA的得分主题

发表于 2021-12-25 11:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
andysky 发表于 2021-12-25 08:09
Sub ReadFromPDF()
    Application.DisplayAlerts = False
    Dim wApp As New Word.Application

pdf的发票和海关缴款书,都有合并单元格,确实有挑战性,并且发票还有发票代码、发票号码、开票日期都在表格之外,这些信息都是需要采集的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 22:34 , Processed in 0.045549 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表