当前位置: 首页 > news >正文

VBA_NZ系列工具NZ02:VBA读取PDF使用说明

我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织成自己的程序呢?VBA可否能组织一个大型的程序呢?如何让VBA形成一个工具,拿来就用呢?在我的教程完结后,我陆续推出这类技术工具资料,这类工具整合了若干多的VBA知识点,让大家感受到VBA之强大。工具资料共两个系列,一个是YZ系列,一个是NZ系列。今日给大家介绍的是VBA_NZ系列工具NZ02:VBA读取PDF使用说明f37dad8af9eafdd3a3978b742d65090a.jpeg

分享成果,随喜正能量】 脾气越大身体越差,脾气越温福报越深;声音越大修养越差,声音越柔德行越厚;性子越急智慧越低,性子越稳智慧越深;妻子越贤夫祸越少,丈夫越仁妻子越美;子女越孝父母越安,父母越慈子孙越贤。做人要方,做事需圆;小事糊涂,大事清楚;小胜靠智,大胜靠德;能忍是聪,会让是明;凡事看开,一生幸福。。

NZ02 VBA读取PDF使用说明

PDF文件大家并不陌生,很多资料的传递都是依靠这种文件格式进行,如一些报表,合同书,甚至个人的一些资料。这个格式的文件有着自己的特点,不易被修改,但是我们的一些数据信息往往来自于这类文件,那么怎么利用VBA技术读取把这类文件的信息呢?这个应用就是实现这个目的。提供给学员7项功能:

功能1:在指定路径下的PDF中查找字符串;

功能2:将指定路径下的PDF文件拆分成若干个文件,每个文件的页数是指定的;

功能3:将某个文件夹下的多个pdf文件合并,

功能4:提取pdf文件中表的数据,表中不能有合并单元格,

功能5:提取PDF中某个段落数据到EXCEL

功能6 :提取pdf文件中表的数据,表中可以有合并单元格

功能7:将文件夹下的多个PDF转变成WORD文件,并放在同路径下的WORD文件夹下(事前建立)

75fd3977bb3389f4394152e64e986706.jpeg

一 准备工作

当你得到这个应用技术后,可以看到两个文件夹及一个使用的文档说明。

e5356a5625a7eb2548e6d7bc43490815.jpeg

1 我们首先打开“adobeacrobatXpro_setup”文件夹,安装一下ADODB,这个文件夹下有安装的说明,如果按照过程出现异常,按照这个说明进行处理即可。安装ADODB的目的是要获得VBA中利用的控件。

2 安装好后,我们打开“程序及示例文件文件”这个文件夹,这个文件如下截图:

e050fd177ceca1bdaf0130d00713ef02.jpeg

这个文件夹中包含两个文件夹和两个文件,其中“word”文件夹是空的,用于文档装换后的目的地址;“测试文档”中包含我们可以用于测试各个功能的PDF文件;PDFChangeTo.xlam文件是加载项文件,是整个文件的技术核心部分,如果您得到的是不开放源码的资料,您是无法打开这个文件并看到代码的,如果您得到的是开放源码的资料,可以输入密码“123456789”打开这个加载项,并看到里面的代码,但是建议您不要轻易打开。TestPDFChangeTo.xlsm文件是我们应用这个加载项的程序,提供了应用的界面,我们打开这个文件,截图如下:

47b296fe6ed9aa41e5d7fa4ef64d8b60.jpeg

以上的界面截图提供了各项功能的运行按钮及要提供的输入参数。您只要在这个界面中按照要求输入相应的参数就可以了。

二 功能1:在指定路径下的PDF中查找字符串

测试参数输入,在D2单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E2单元格中输入文件名search;在F2单元格中输入我们要查找的字符。

15d79af565fb2ca4f3b339de43e881ae.jpeg

点击运行按钮mynzTestA.

结果:

9a3b69dfe5ebc1f29f70839b72d015ed.jpeg

三 功能2:拆分PDF文件

测试参数输入,在D4单元格中输入路径地址:D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档;在E4单元格中输入文件名”Fiddler调试”;在F4单元格中输入我们要形成每个文件的页数,这里我们选择10。

5b039d43e3e1d10d1940bf7d00433691.jpeg

点击运行按钮mynzTestB.

结果:

5c3e1b25bfcb71f59d8b14f13b499771.jpeg

以上我们看到,已经将”Fiddler调试文件,分隔成每10页一个文件,运行也是非常的快。

四 功能3:将某个文件夹下的多个pdf文件合并

测试参数输入,在D6单元格中输入路径地址:D:\VBA笔记\VBA_PDF\程序及示例文件文件;在E6单元格中输入文件名”myMergePDF”;在F6单元格为空,没有参数。如下截图:

cb3ac2433c0496de8ea3666ce58f5eda.jpeg

cf79ab153e88a331ee115969a42c358d.jpeg

点击运行按钮mynzTestC.

结果:

244b8612957ec1f62a5dfb4881bd5c1b.jpeg

以上结果,已经将“search文件”和“文章”文件合并到“myMergePDF”文件。当然,你也可以在这个文件夹下放入多个PDF文件。

五 功能4:提取pdf文件中表数据(表中不能有合并单元格)

测试参数输入:在D8单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E8单元格中输入文件名”myPDF(无合并单元格)”;在F8单元格为空,没有参数。如下截图:

cadc65232186ca0479418e4fdf3ecae2.jpeg

点击运行按钮mynzTestD.

结果:

33f0edb7a7975ce9487530b37ac49b3f.jpeg

程序运行后,会形成一个新的文件,把表格中的内容放到新的工作簿文件中。

六 功能5:提取PDF中某个段落数据到EXCEL

测试参数输入:在D10单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E10单元格中输入文件名“文章”;在F8单元格输入“要提取的段落号”这里我们输入1。如下截图:

c550476a420c17da6c343b5cae21ef51.jpeg

点击运行按钮mynzTestE.

结果:

38ef87ad65df36f3d0757ac4abd0b670.jpeg

程序运行后,会形成一个新的文件,把PDF文件“文章”中的第一段内容放到新的工作簿文件中。

七 功能6:提取pdf文件中表的数据(可以有合并单元格)

测试参数输入:在D12单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件\测试文档”;在E12单元格中输入文件名“myPDF(有合并单元格)”;在F12单元格输入表间隔参数,是指两个表的间隔行数,这里用的是3。如下截图:

ade5928f5e2609c4e3a226e412198870.jpeg

点击运行按钮mynzTestF.

结果:

190d2360da39a01b9c122bcb44c14552.jpeg

程序运行后,会形成一个新的文件,把PDF各个表格中的内容放到新的工作簿文件中。

八 功能7:将文件夹下的多个PDF转变成WORD文件

测试参数输入:在D14单元格中输入路径地址“D:\VBA笔记\VBA_PDF\程序及示例文件文件”;没有其他参数,如下截图:

0da6474670378dec46d3ff3b06e51872.jpeg

3d442df9084c08055060821e96da6e61.jpeg

点击运行按钮mynzTestG.

结果:

688fde4f47bbb601af310fffb5b66f32.jpeg

程序运行后,会在word文件夹中形成相应新的word文件.

九 技术总结

这个应用中,我们大体上解决了VBA读取PDF文件中常见的七大问题:

功能1:在指定路径下的PDF中查找字符串;

功能2:将指定路径下的PDF文件拆分成若干个文件,每个文件的页数是指定的;

功能3:将某个文件夹下的多个pdf文件合并,

功能4:提取pdf文件中表的数据,表中不能有合并单元格,

功能5:提取PDF中某个段落数据到EXCEL

功能6 :提取pdf文件中表的数据,表中可以有合并单元格

功能7:将文件夹下的多个PDF转变成WORD文件,并放在同路径下的WORD文件夹下(事前建立)

但是,由于有些PDF的文件完全完美的读取对于VBA而言是非常困难的,还不能够完全实现,也希望学员的技术在我的基础上有所突破,

【分享成果,随喜正能量】

52ea3fbb7613d0377aa5ee67eff112d9.jpeg

下面是NZ系列VBA应用工具:

2cd858ea37bd749ca531ef1a85a34221.jpeg

f403a8322acd2ec04dfc7b40a94fe095.jpeg

相关文章:

VBA_NZ系列工具NZ02:VBA读取PDF使用说明

我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织…...

如何在paddlehub库中找到paddlehub.Module()所在的位置

要在PaddleHub库中找到paddlehub.Module()的位置,您可以通过以下步骤在PaddleHub库的源代码中进行查找: 1.确定PaddleHub库的安装位置:首先,确定您安装PaddleHub库的位置。通常,PaddleHub库会被安装在Python的site-pa…...

创建旅游景点图数据库Neo4J技术验证

文章目录 创建旅游景点图数据库Neo4J技术验证写在前面基础数据建库python3源代码KG效果KG入库效率优化方案PostGreSQL建库 创建旅游景点图数据库Neo4J技术验证 写在前面 本章主要实践内容: (1)neo4j知识图谱库建库。使用导航poi中的公园、景…...

Docker一键部署WordPress

使用Docker安装WordPress相对传统安装方式更加便捷高效,因为它可以快速创建一个包含所有必要组件(Web服务器、PHP和MySQL数据库)的独立容器环境。下面是一个简化的步骤说明如何使用Docker和Docker Compose安装WordPress: 一 安装…...

C++的类与对象(五):赋值运算符重载与日期类的实现

目录 比较两个日期对象 运算符重载 赋值运算符重载 连续赋值 日期类的实现 Date.h文件 Date.cpp文件 Test.cpp文件 const成员 取地址及const取地址操作符重载 比较两个日期对象 问题描述:内置类型可直接用运算符比较,自定义类型的对象是多个…...

【uni-app小程序开发】实现一个背景色渐变的滑动条slider

先直接附上背景色渐变的滑动条slider uni-module插件地址:https://ext.dcloud.net.cn/plugin?id16841 最近做的一个用uni-appvue2开发的微信小程序项目中要实现一个滑动进度控制条,如下图所示: 1. 滑动条需要渐变背景色 2. 滑块的背景色需…...

Claude3横空出世:颠覆GPT-4,Anthropic与亚马逊云科技共启AI新时代

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...

【AI视野·今日NLP 自然语言处理论文速览 第八十三期】Wed, 6 Mar 2024

AI视野今日CS.NLP 自然语言处理论文速览 Wed, 6 Mar 2024 Totally 74 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers MAGID: An Automated Pipeline for Generating Synthetic Multi-modal Datasets Authors Hossein Aboutalebi, …...

【AI视野·今日Robot 机器人论文速览 第八十二期】Tue, 5 Mar 2024

AI视野今日CS.Robotics 机器人学论文速览 Tue, 5 Mar 2024 Totally 63 papers 👉上期速览✈更多精彩请移步主页 Interesting: 📚双臂机器人拧瓶盖, (from 伯克利) website: https://toruowo.github.io/bimanual-twist 📚水下抓取器, (from …...

流量分析-webshell管理工具

文章目录 CSCS的工作原理CS流量特征 菜刀phpJSPASP 蚁剑冰蝎哥斯拉 对于常见的webshell管理工具有中国菜刀,蚁剑,冰蝎,哥斯拉。同时还有渗透工具cobaltstrike(CS)。 CS CobaltStrike有控制端,被控端,服务端。(相当于黑…...

备考2025年AMC8数学竞赛:吃透2000-2024年600道AMC8真题就够

我们继续来随机看五道AMC8的真题和解析,根据实践经验,对于想了解或者加AMC8美国数学竞赛的孩子来说,吃透AMC8历年真题是备考最科学、最有效的方法之一。 即使不参加AMC8竞赛,吃透了历年真题600道和背后的知识体系,那么…...

基于鹦鹉优化算法(Parrot optimizer,PO)的无人机三维路径规划(提供MATLAB代码)

一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行…...

linux Shell 命令行-02-var 变量

拓展阅读 linux Shell 命令行-00-intro 入门介绍 linux Shell 命令行-02-var 变量 linux Shell 命令行-03-array 数组 linux Shell 命令行-04-operator 操作符 linux Shell 命令行-05-test 验证是否符合条件 linux Shell 命令行-06-flow control 流程控制 linux Shell 命…...

C#MQTT编程10--MQTT项目应用--工业数据上云

1、文章回顾 这个系列文章已经完成了9个内容,由浅入深地分析了MQTT协议的报文结构,并且通过一个有效的案例让伙伴们完全理解理论并应用到实际项目中,这节继续上马一个项目应用,作为本系列的结束,奉献给伙伴们&#x…...

exceljs解析和生成excel文件

安装 npm install exceljs解析excel 通过 Workbook 的 readFile 方法可以拿到workbook对象, workbook对象包含的概念有 worksheet(工作表) --> row(行) --> cell(单元格).于是可以通过依次遍历 worksheet, row, cell来拿到单元格的数据直接通过 worksheet.getSheetValue…...

HCIP —— BGP 路径属性 (上)

目录 BGP 路径属性 1.优选Preferred-Value属性值最大的路由 2.优选Local-preference 属性数值大的路由 3.本地始发的BGP路由优先于其他对等体处学习到的路由。 4..优选AS_PATH属性值最短的路由 BGP 路径属性 BGP的路由选路是存在优选规则的,下图为华为官网提供…...

NIO学习总结(二)——Selector、FileLock、Path、Files、聊天室实现

一、Selector 1.1 Selector简介 1.1.1 Selector 和 Channel的关系 Selector 一般称为选择器 ,也可以翻译为 多路复用器 。 它是 Java NIO 核心组件中的一个,用于检查一个或多个 NIO Channel(通道)的状态是否处于可读、可写。由…...

面试经典150题(111-113)

leetcode 150道题 计划花两个月时候刷完之未完成后转,今天(第5天)完成了3道(111-113)150 111.(172. 阶乘后的零)题目描述: 给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1…...

iOS17.4获取UDID安装mobileconfig描述文件失败 提示“安全延迟进行中”问题 | 失窃设备保护

iOS17.4这两天已经正式发布, 在iOS 17.4版本中新增了一个名为"失窃设备保护"的功能,并提供了一个"需要安全延迟"的选项。 iOS17.4获取UDID安装mobileconfig描述文件失败 提示“安全延迟进行中”问题 | 失窃设备保护 当用户选择启用…...

List--splice使用技巧

splice : 拼接两个list api: void dump(list<int>& li) {for(auto & i :li)cout<<i<< " ";cout<<endl; } int main() { list<int> li1 {1,3,5};list<int> li2 {2,4,6}; }1 c.splice(pos,c2); // li的开头插入li2链表…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...