ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 将PDF文件内容提取到EXCEL中

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2023-1-24 08:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
用我的框架,虽然不能提取到excel里,但是能先转到word

Workflow.zip

1.99 MB, 下载次数: 114

TA的精华主题

TA的得分主题

发表于 2023-1-24 14:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-1-29 20:19 | 显示全部楼层
嘉咏 发表于 2023-1-22 15:47
哈哈,同事那个程序我也做出来了。
那个程序里是要先把PDF里每一页的内容用文本字符串读出来,然后拖进 ...

👍👍👍 太厉害了。

回复还是时隔差不多一年的回复~~😊😊

TA的精华主题

TA的得分主题

发表于 2023-1-30 18:35 来自手机 | 显示全部楼层
wps6129 发表于 2023-1-29 20:19
👍👍👍 太厉害了。

回复还是时隔差不多一年的回复~~😊😊

除此之外,还可以用VBA将把PDF转换成csv或者是xlsx文件,然后用单元格range对象慢慢提取。

TA的精华主题

TA的得分主题

发表于 2023-2-1 10:48 | 显示全部楼层
opiona 发表于 2022-2-15 09:09
安装 Acrobat 9.0  专业版 10.0也行

正好有用到像大神学习一下

TA的精华主题

TA的得分主题

发表于 2023-2-2 22:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
嘉咏 发表于 2023-1-30 18:35
除此之外,还可以用VBA将把PDF转换成csv或者是xlsx文件,然后用单元格range对象慢慢提取。

TA的精华主题

TA的得分主题

发表于 2023-2-21 00:31 | 显示全部楼层
''首先一定安装 PDF Pro专业版,然后引用
'读取PDF-字符文本,
''以下code是读取银行回单PDF的code一部分,code可以实现读取银行回单所有的信息,code我做了删减;
'下面代码,可以读取PDF每一页的字符内容,存放在EXCEL里;
''图片的,加密的PDF无法处理
sTime = Timer
Dim AC_PD As New Acrobat.AcroPDDoc
Dim AC_Hi As Acrobat.AcroHiliteList
Dim AC_PG As Acrobat.AcroPDPage
Dim AC_PGTxt As Acrobat.AcroPDTextSelect

Dim WS_PDF As Worksheet
Dim RW_Ct As Long
Dim Col_Num As Integer
Dim Li_Row As Long
Dim Yes_Fir As Boolean

Dim Ct_Page As Long
Dim i As Long, j As Long, k As Long, ROW_DEL As Long
Dim T_Str As String
Dim T_Stryy As String
Dim Hld_Txt As Variant

lb = Sheet3.Range("B62222").End(xlUp).Row  '行数
lb = Application.WorksheetFunction.Max(lb, 2)
Application.ScreenUpdating = False

Set AC_PD = New Acrobat.AcroPDDoc 'PDF文件
Set AC_Hi = New Acrobat.AcroHiliteList 'PDF文本字符
AC_Hi.Add 0, 32767 '限制文本字符个数
With AC_PD

watermarkfile = Sheet1.Range("A" & 2)  '需要处理的文件名,注意这里,加地址,例如 <D:\BANK\bank.pdf>
.Open watermarkfile '打开PDF文件
    Ct_Page = .GetNumPages '得到PDF文件总页数
    If Ct_Page = -1 Then 'pdf文件页数不对,说明文件没有找到或者文件名错误
        MsgBox "请确认PDF文件 '" & PDF_File & "'"
        .Close
        Set WS_PDF = Nothing
        Set AC_PGTxt = Nothing
        Set AC_PG = Nothing
        Set AC_Hi = Nothing
        Set AC_PD = Nothing
    End If

ROW_DEL = Sheet2.Range("E62222").End(xlUp).Row
ROW_DEL = Application.WorksheetFunction.Max(ROW_DEL, 2)
Sheet2.Range("E2:F" & ROW_DEL).Clear '清除读取区域的旧数据

    For i = 1 To Ct_Page   '从PDF第一页 到最后一页
        T_Str = ""
        Set AC_PG = .AcquirePage(i - 1) '得到当前页
        Set AC_PGTxt = AC_PG.CreateWordHilite(AC_Hi) '得到当期页的文字列表

        If Not AC_PGTxt Is Nothing Then
            With AC_PGTxt
               III = .GetNumText - 1'得到当前页文本最后一行
                For j = 0 To III
                    T_Str = T_Str & .GetText(j) '合并获得的每一行文本
                Next j
            End With
        End If
             T_Stryy = T_Str   'T_Str 后面还有各种处理的,这里我删除了
              T_Stryy = Application.WorksheetFunction.Clean(Application.WorksheetFunction.Trim(T_Stryy)) '去掉文本前后空格和杂质
               T_Stryy = Replace(T_Stryy, " ", "") '去掉文本中间空格            
                    Sheet2.Range("F" & i + 1).Value = i  ' 对应的PDF的页码   
                    Sheet2.Range("G" & i + 1).Value = T_Stryy '得到PDF每一页的文字内容没有任何格式的文本,和页码对应
    Next i   
    .Close '关闭文件
End With
Application.ScreenUpdating = True

Set WS_PDF = Nothing
Set AC_PGTxt = Nothing
Set AC_PG = Nothing
Set AC_Hi = Nothing
Set AC_PD = Nothing

MsgBox "数据计算完毕!用时" & Round(Timer - sTime, 2) & "秒。" & Round((Timer - sTime) / 60, 4) & "分钟。"

TA的精华主题

TA的得分主题

发表于 2023-2-21 08:39 | 显示全部楼层
嘉咏 发表于 2023-1-30 18:35
除此之外,还可以用VBA将把PDF转换成csv或者是xlsx文件,然后用单元格range对象慢慢提取。

见47楼,我的回复,就是提取PDF每一页的文本到EXCEL单元格

TA的精华主题

TA的得分主题

发表于 2023-2-21 08:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 smiletwo 于 2023-2-21 08:44 编辑

用后期绑定试试

又入考古坑

TA的精华主题

TA的得分主题

发表于 2023-2-21 08:44 | 显示全部楼层
xiao99hui 发表于 2022-6-8 16:52
你好,这个只能读取PDF里的文本,当pdf是图片的时候,又怎么写呢

如果PDF是图片或者扫描件,我是这样子处理的.
1.使用FineReader(FineReader15  https://pan.baidu.com/s/1ArF0iWpfNCvmWVIPy8avGQ       x972) OCR成EXCEL文件;因为我不会用网上的免费OCR api接口,只能用免费的单机版OCR软件.

2.使用vba 整理那个EXCEL文件
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-20 06:43 , Processed in 0.031858 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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