NZ系列工具NZ02:VBA讀取PDF使用說明

【分享成果,隨喜正能量】時光綻放并蒂蓮,更是一份殷殷囑托,更是一份誠摯祝福,是一份時光饋贈,又是一份時光陪伴。。

我的教程一共九套及VBA漢英手冊一部,分為初級、中級、高級三大部分。是對VBA的系統講解,從簡單的入門,到數據庫,到字典,到高級的網抓及類的應用。大家在學習的過程中可能會存在困惑,這么多知識點該如何組織成自己的程序呢?VBA可否能組織一個大型的程序呢?如何讓VBA形成一個工具,拿來就用呢?在我的教程完結后,我陸續推出這類技術工具資料,這類工具整合了若干多的VBA知識點,讓大家感受到VBA之強大。工具資料共兩個系列,一個是YZ系列,一個是NZ系列。今日給大家介紹的是NZ系列工具NZ02:VBA讀取PDF使用說明0564a80b5b25ddb0ebc4b955009881c6.jpeg

NZ02 VBA讀取PDF使用說明

PDF文件大家并不陌生,很多資料的傳遞都是依靠這種文件格式進行,如一些報表,合同書,甚至個人的一些資料。這個格式的文件有著自己的特點,不易被修改,但是我們的一些數據信息往往來自于這類文件,那么怎么利用VBA技術讀取把這類文件的信息呢?這個應用就是實現這個目的。提供給學員7項功能:

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

功能2:將指定路徑下的PDF文件拆分成若干個文件,每個文件的頁數是指定的;

功能3:將某個文件夾下的多個pdf文件合并,

功能4:提取pdf文件中表的數據,表中不能有合并單元格,

功能5:提取PDF中某個段落數據到EXCEL

功能6:提取pdf文件中表的數據,表中可以有合并單元格

功能7:將文件夾下的多個PDF轉變成WORD文件,并放在同路徑下的WORD文件夾下(事前建立)

115d498ea72690477bc48b86f3176bdd.jpeg

一準備工作

當你得到這個應用技術后,可以看到兩個文件夾及一個使用的文檔說明。

a4552975275b122156e4c8fa157425c5.jpeg

1我們首先打開“adobeacrobatXpro_setup”文件夾,安裝一下ADODB,這個文件夾下有安裝的說明,如果按照過程出現異常,按照這個說明進行處理即可。安裝ADODB的目的是要獲得VBA中利用的控件。

2安裝好后,我們打開“程序及示例文件文件”這個文件夾,這個文件如下截圖:

eedf4875b7162b2966fb1d991069e3b0.jpeg

這個文件夾中包含兩個文件夾和兩個文件,其中“word”文件夾是空的,用于文檔裝換后的目的地址;“測試文檔”中包含我們可以用于測試各個功能的PDF文件;PDFChangeTo.xlam文件是加載項文件,是整個文件的技術核心部分,如果您得到的是不開放源碼的資料,您是無法打開這個文件并看到代碼的,如果您得到的是開放源碼的資料,可以輸入密碼“123456789”打開這個加載項,并看到里面的代碼,但是建議您不要輕易打開。TestPDFChangeTo.xlsm文件是我們應用這個加載項的程序,提供了應用的界面,我們打開這個文件,截圖如下:

957e10102a44fa58349f5dcf63636a89.jpeg

以上的界面截圖提供了各項功能的運行按鈕及要提供的輸入參數。您只要在這個界面中按照要求輸入相應的參數就可以了。

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

測試參數輸入,在D2單元格中輸入路徑地址“D:\VBA筆記\VBA_PDF\程序及示例文件文件\測試文檔”;在E2單元格中輸入文件名search;在F2單元格中輸入我們要查找的字符。

2f11bb6e54dc6c2202df2a963cf37e83.jpeg

點擊運行按鈕mynzTestA.

結果:

30b410d58a9d6912add791e72688696a.jpeg

三功能2:拆分PDF文件

測試參數輸入,在D4單元格中輸入路徑地址:D:\VBA筆記\VBA_PDF\程序及示例文件文件\測試文檔;在E4單元格中輸入文件名”Fiddler調試”;在F4單元格中輸入我們要形成每個文件的頁數,這里我們選擇10。

0dd836a656fc7111d44a9cc406fe6fd9.jpeg

點擊運行按鈕mynzTestB.

結果:

57169fee79b86c3e6af0790cbe3d9ee5.jpeg

以上我們看到,已經將”Fiddler調試文件,分隔成每10頁一個文件,運行也是非常的快。

四功能3:將某個文件夾下的多個pdf文件合并

測試參數輸入,在D6單元格中輸入路徑地址:D:\VBA筆記\VBA_PDF\程序及示例文件文件;在E6單元格中輸入文件名”myMergePDF”;在F6單元格為空,沒有參數。如下截圖:

841a993e041787a8cadb9566ef51a77e.jpeg

bd5244d9940c0ca61ffb9996609583e5.jpeg

點擊運行按鈕mynzTestC.

結果:

d47050bed0737392bae2206185bfc896.jpeg

以上結果,已經將“search文件”和“文章”文件合并到“myMergePDF”文件。當然,你也可以在這個文件夾下放入多個PDF文件。

五功能4:提取pdf文件中表數據(表中不能有合并單元格)

測試參數輸入:在D8單元格中輸入路徑地址“D:\VBA筆記\VBA_PDF\程序及示例文件文件\測試文檔”;在E8單元格中輸入文件名”myPDF(無合并單元格)”;在F8單元格為空,沒有參數。如下截圖:

3f8236c5d8234582051d57330226b15f.jpeg

點擊運行按鈕mynzTestD.

結果:

1cd1aca0e5ca47cea801e81fa5692226.jpeg

程序運行后,會形成一個新的文件,把表格中的內容放到新的工作簿文件中。

六功能5:提取PDF中某個段落數據到EXCEL

測試參數輸入:在D10單元格中輸入路徑地址“D:\VBA筆記\VBA_PDF\程序及示例文件文件\測試文檔”;在E10單元格中輸入文件名“文章”;在F8單元格輸入“要提取的段落號”這里我們輸入1。如下截圖:

bb511f5877385467eb3ef5f37a4b5410.jpeg

點擊運行按鈕mynzTestE.

結果:

cecdf43b36d579f460721528695b7579.jpeg

程序運行后,會形成一個新的文件,把PDF文件“文章”中的第一段內容放到新的工作簿文件中。

七功能6:提取pdf文件中表的數據(可以有合并單元格)

測試參數輸入:在D12單元格中輸入路徑地址“D:\VBA筆記\VBA_PDF\程序及示例文件文件\測試文檔”;在E12單元格中輸入文件名“myPDF(有合并單元格)”;在F12單元格輸入表間隔參數,是指兩個表的間隔行數,這里用的是3。如下截圖:

d5c47d697345c28697e7723e0e6e0d5f.jpeg

點擊運行按鈕mynzTestF.

結果:

739914041e519beee1cff816cd00f5c6.jpeg

程序運行后,會形成一個新的文件,把PDF各個表格中的內容放到新的工作簿文件中。

八功能7:將文件夾下的多個PDF轉變成WORD文件

測試參數輸入:在D14單元格中輸入路徑地址“D:\VBA筆記\VBA_PDF\程序及示例文件文件”;沒有其他參數,如下截圖:

373825e882193d766390f75c429e6628.jpeg

4668394b8b617e55032b7e2959a9c0f3.jpeg

點擊運行按鈕mynzTestG.

結果:

643e58b95f75a00605d98db5922a2f93.jpeg

程序運行后,會在word文件夾中形成相應新的word文件.

九技術總結

這個應用中,我們大體上解決了VBA讀取PDF文件中常見的七大問題:

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

功能2:將指定路徑下的PDF文件拆分成若干個文件,每個文件的頁數是指定的;

功能3:將某個文件夾下的多個pdf文件合并,

功能4:提取pdf文件中表的數據,表中不能有合并單元格,

功能5:提取PDF中某個段落數據到EXCEL

功能6:提取pdf文件中表的數據,表中可以有合并單元格

功能7:將文件夾下的多個PDF轉變成WORD文件,并放在同路徑下的WORD文件夾下(事前建立)

但是,由于有些PDF的文件完全完美的讀取對于VBA而言是非常困難的,還不能夠完全實現,也希望學員的技術在我的基礎上有所突破,

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

39e5f74fb726dff878637c1039b2cddd.jpeg

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

ef7fdb1ce3b9900962d4bd9b0e005438.jpeg

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36067.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36067.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36067.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

“深入解析JVM:探索Java虛擬機的工作原理與優化技巧“

標題:深入解析JVM:探索Java虛擬機的工作原理與優化技巧 摘要:本文將深入探討Java虛擬機(JVM)的工作原理、內部結構以及如何優化Java應用程序的性能。我們將介紹JVM的主要組件,包括類加載器、運行時數據區域…

關于openssl SM2 ECC以及密鑰生成和簽名驗簽

SM2是基于ECC的國密算法,本身也是ECC算法。 openssl生成ECC公私鑰并簽名驗簽 #!/bin/sh openssl ecparam -genkey -name prime256v1 -out private.pem #print pri #openssl ec -in private.pem -text -noout openssl ec -in private.pem -pubout -out public.pem #gen test.…

uniapp+uview封裝小程序請求

提要: uniapp項目引入uview庫 此步驟不再闡述 1.創建環境文件 env.js: let BASE_URL;if (process.env.NODE_ENV development) {// 開發環境BASE_URL 請求地址; } else {// 生產環境BASE_URL 請求地址; }export default BASE_URL; 2.創建請求文件 該…

QLExpress動態腳本引擎解析工具

介紹 QLExpress腳本引擎 1、線程安全,引擎運算過程中的產生的臨時變量都是threadlocal類型。 2、高效執行,比較耗時的腳本編譯過程可以緩存在本地機器,運行時的臨時變量創建采用了緩沖池的技術,和groovy性能相當。 3、弱類型腳本…

廣西Geotrust單位多域名https證書推薦

Geotrust是國際知名CA認證機構,根證書是Digicert,還有RapidSSL、QuickSSL等子品牌,擁有多種類型的多域名https證書,比如OV企業型https證書和EV增強型多域名https證書。那么,哪種多域名https證書更適合企事業單位使用呢…

SpringBoot復習:(43)如何以war包的形式運行SpringBoot程序

一、.pom.xml配置packging為war <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven…

Android 內存泄漏

名詞解釋 內存泄漏:即memory leak。是指內存空間使用完畢后無法被釋放的現象&#xff0c;雖然Java有垃圾回收機制&#xff08;GC&#xff09;&#xff0c;但是對于還保持著引用&#xff0c; 該內存不能再被分配使用&#xff0c;邏輯上卻已經不會再用到的對象&#xff0c;垃圾回…

react如何實現數據渲染

React數據渲染是指將組件中的數據映射到頁面上&#xff0c;以展示出來。在React中&#xff0c;數據渲染通常是通過JSX和組件的state或props完成的。 JSX是一個類似HTML的語法&#xff0c;可以在其中嵌入JavaScript表達式。在JSX中&#xff0c;可以使用{}包裹JavaScript表達式&…

解決C語言中使用scanf輸入字符串導致for循環失效的問題

在C語言編程中&#xff0c;使用scanf函數輸入字符串是一項基本操作。然而&#xff0c;當我們嘗試在for循環中使用scanf輸入字符串時&#xff0c;可能會遇到意外的問題&#xff0c;導致循環無法正常執行。本文將深入探討這個問題&#xff0c;并提供解決方案&#xff0c;讓你能夠…

考公-判斷推理-定義判斷

第九節課 例題 例題 例題 例題 例題 例題 腳一滑&#xff0c;就是工傷&#xff0c;這難道不是操作不當嗎 例題 不要較真&#xff0c;公務員&#xff0c;把沒有全局觀念的人排除在公務員隊伍之外 例題 例題 下次看到不字&#xff0c;先給我畫上 例題 例題 例題 例題…

微信群聊微信機器人實現流程

1.注冊微信賬號 要使用一個微信機器人賬號來實現在微信群聊中的自動回復功能&#xff0c;你需要注冊一個專門用于機器人的微信賬號。 注冊微信機器人賬號的步驟如下&#xff1a; 下載微信&#xff1a;在手機或者電腦上下載并安裝微信應用程序。創建新賬號&#xff1a;打開微信…

力扣63.不同路徑II(動態規劃)

/*** author Limg* date 2022/08/09* 一個機器人位于一個 m x n 網格的左上角 &#xff08;起始點在下圖中標記為 “Start” &#xff09;。* 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角&#xff08;在下圖中標記為 “Finish”&#xff09;。* 現在考慮網…

探討uniapp的生命周期問題

在uniapp中,生命周期函數分為應用生命周期函數、頁面生命周期函數和組件生命周期函數. 1應用聲明周期 應用生命周期函數只能在 App.vue 中監聽有效&#xff0c;在其他頁監聽無效。 onLaunch&#xff1a;當uni-app 初始化完成時觸發&#xff08;全局只觸發一次&#xff09;on…

鄉村振興指數與其30余個原始變量數據(2000-2022年)

鄉村振興是當下經濟學研究的熱點之一&#xff0c;對鄉村振興進行測度&#xff0c;是研究基礎。測度鄉村振興水平的學術論文廣泛發表在《數量經濟技術經濟研究》等頂刊上。整理了2000-2022年城市層面的鄉村振興指數與其30余個原始變量數據&#xff0c;供大家使用。 數據來源&…

react-spring,一個react的動畫庫的使用

介紹 React Spring 是一個 spring physics based animation library 用于 React。它可以輕松地在 React 中實現彈性、漸變等動畫效果。 使用 安裝依賴&#xff1a; 使用npm&#xff1a; npm install react-spring 使用yarn&#xff1a; yarn add react-spring 導入和使用&a…

Opencv4基于C++基礎入門筆記:OpenCV環境配置搭建

文章目錄&#xff1a; 一&#xff1a;軟件安裝 二&#xff1a;配置環境&#xff08;配置完之后重啟一下軟件&#xff09; 1.配置電腦系統環境變量 vs2012及其以下 vs2014及其以上 2.配置VS軟件環境變量 vs2012及其以下 vs2014及其以上 三&#xff1a;測試 vs2012及其…

Java 實現Rtsp 轉rtmp,hls,flv

服務支撐&#xff1a;FFmpeg srs(流媒體服務器) 整個流程是 FFmpeg 收流轉碼 推 rtmp 到流媒體服務 流媒體服務再 分發流到公網 搭建流媒體服務: 1. SRS (Simple Realtime Server) | SRS &#xff08;本例子使用的是SrS 安裝使用docker &#xff09; 2.GitHub - ZLMedi…

python菱形問題

Python類分為兩種&#xff0c;一種叫經典類&#xff0c;一種叫新式類。都支持多繼承&#xff0c;但繼承順序不同。 新式類&#xff1a;從object繼承來的類。&#xff08;如:class A(object)&#xff09;&#xff0c;采用廣度優先搜索的方式繼承&#xff08;即先水平搜索&#…

【二分答案】CF803 D

感覺之前的*1900好簡單 Problem - D - Codeforces 題意&#xff1a; 思路&#xff1a; 注意到寬度具有單調性&#xff0c;考慮二分寬度 然后限制了最大寬度&#xff0c;要使行數 < k 那么在check里貪心&#xff0c;每行選的盡可能多 考慮雙指針&#xff0c;每次選長度…

Spring MVC相關知識點

1.Spring MVC的理解&#xff1f; 首先&#xff0c;MVC模型是模型&#xff0c;視圖&#xff0c;控制器的簡寫&#xff0c;其思想核心是通過將請求處理控制&#xff0c;業務邏輯&#xff0c;數據封裝&#xff0c;數據顯示等流程節點分離的思想來組織代碼。 所以&#xff0c;MVC…