[ad_1]
我有以下代码,但是要运行它,先决条件是安装 PDFsharp 库,并且我无法在 Excel VBA 中添加引用。
子批量PDF提取()
‘ 参考:PDFsharp 库
‘ 定义包含 PDF 文件的文件夹路径
将文件夹路径变暗为字符串
文件夹路径 = “C:\Users\vlad.zaicescu\Desktop\PDF-to-Excel\sample_invoice”
‘ 创建一个新的 Excel 工作簿和工作表
调暗 wb 作为工作簿
设置 wb = Workbooks.Add
昏暗的工作表
设置 ws = wb.Sheets(1)
‘ 设置插入提取数据的起始行
将 startRow 变暗为整数
起始行 = 1
‘ 获取文件夹中所有PDF文件
Dim pdfFiles() 作为字符串
pdfFiles = GetPDFFilesInFolder(文件夹路径)
‘ 从每个 PDF 文件中提取数据并插入到 Excel 中
将 i 调暗为整数
对于 i = LBound(pdfFiles) 到 UBound(pdfFiles)
将 pdfPath 变暗为字符串
pdfPath = 文件夹路径 & pdfFiles(i)
将提取的数据变暗为字符串
提取数据=从PDF提取数据(pdfPath)
‘ 将提取的数据插入 Excel 工作表
ws.Cells(startRow, 1).Value = pdfFiles(i) ‘ 插入 PDF 文件名
ws.Cells(startRow, 2).Value = extractData ‘ 插入提取的数据
起始行 = 起始行 + 1
接下来我
‘ 自动调整 Excel 工作表中的列
ws.Columns.AutoFit
‘ 保存工作簿
将 savePath 变暗为字符串
savePath = “C:\路径\保存\输出.xlsx”
wb.另存为保存路径
‘ 关闭工作簿并清理
wb.关闭
设置 ws = 无
设置 wb = 无
MsgBox “批量提取已完成。输出保存到:” & savePath
结束子
函数 GetPDFFilesInFolder(ByValfolderPath As String) As String()
‘ 获取指定文件夹下的所有PDF文件
暗淡文件()作为字符串
暗淡文件计数为整数
文件计数 = 0
将文件名变暗为字符串
文件名 = Dir(文件夹路径 & “*.pdf”)
当文件名<>“”时执行
ReDim 保留文件(0 至 fileCount)
文件(文件数) = 文件名
文件数 = 文件数 + 1
文件名 = 目录
环形
GetPDFFilesInFolder = 文件
结束功能
函数 ExtractDataFromPDF(ByVal pdfPath As String) As String
‘ 使用 PDFsharp 从 PDF 文件中提取数据
‘ 创建 PDF 文档
暗淡文档作为新的 PdfSharp.Pdf.PdfDocument
‘ 打开 PDF 文件
文档.打开(pdfPath)
‘ 从每个页面中提取文本
将提取的数据变暗为字符串
提取数据=“”
Dim pageCount As Integer
页数 = 文档.页数
将 i 调暗为整数
对于 i = 0 到 pageCount – 1
暗淡页面为 PdfSharp.Pdf.PdfPage
页面 = 文档.Pages(i)
暗淡内容作为 PdfSharp.Pdf.Content.PdfContentReader
内容 = 新 PdfSharp.Pdf.Content.PdfContentReader(页)
而 content.Read()
如果 content.GetType() 是 GetType(PdfSharp.Pdf.Content.PdfLiteral) 那么
暗淡文字作为 PdfSharp.Pdf.Content.PdfLiteral
文字 = DirectCast(内容, PdfSharp.Pdf.Content.PdfLiteral)
提取数据 = 提取数据 & 文字.值
万一
结束时
接下来我
‘ 关闭 PDF 文档
文档.关闭
从 PDF 中提取数据 = 提取数据
结束功能
我尝试过的:
我在 Visual Studio 中创建了一个类,通过 NuGet 包管理器安装了 PDFsharp 库,并构建了解决方案以接收可在 Excel VBA 中用作参考的 DLL。 但是,当我尝试添加 DLL 时却无法添加。 此外,我尝试仅添加 NuGet 包中的 PDFsharp DLL,但也失败了。
请在此处查看重现视频:https://app.screencast.com/MJmEkYKUsnGsw
[ad_2]
コメント