[ad_1]
J’ai cependant le code suivant pour l’exécuter, le prérequis est d’avoir installé la bibliothèque PDFsharp et je n’arrive pas à ajouter la référence dans Excel VBA.
Sous-VracPDFExtraction()
‘ Référence : bibliothèque PDFsharp
‘ Définir le chemin du dossier contenant les fichiers PDF
Dim chemin du dossier en tant que chaîne
pathPath = “C:\Utilisateurs\vlad.zaicescu\Desktop\PDF-to-Excel\sample_invoice”
‘Créer un nouveau classeur et une nouvelle feuille de calcul Excel
Dim wb comme classeur
Définir wb = Classeurs.Ajouter
Dim ws comme feuille de calcul
Définir ws = wb.Sheets(1)
‘Définit la ligne de départ pour l’insertion des données extraites
Dim startRow comme entier
débutRow = 1
‘ Récupère tous les fichiers PDF du dossier
Dim pdfFiles() comme chaîne
pdfFiles = GetPDFFilesInFolder (chemin du dossier)
‘ Extraire les données de chaque fichier PDF et les insérer dans Excel
Dim i comme entier
Pour i = LBound (pdfFiles) Vers UBound (pdfFiles)
Dim pdfPath As String
pdfPath = chemin du dossier & fichiers pdf (i)
Dim extraitData As String
extraitData = ExtractDataFromPDF (pdfPath)
‘ Insérez les données extraites dans la feuille de calcul Excel
ws.Cells(startRow, 1).Value = pdfFiles(i) ‘ Insérez le nom du fichier PDF
ws.Cells(startRow, 2).Value = extraitData ‘ Insérer les données extraites
startRow = startRow + 1
Ensuite je
‘ Ajuster automatiquement les colonnes dans la feuille de calcul Excel
ws.Columns.AutoFit
‘ Enregistrer le classeur
Dim savePath sous forme de chaîne
savePath = “C:\Chemin\vers\save\output.xlsx”
wb.SaveAs savePath
‘ Fermez le classeur et nettoyez
wb.Fermer
Définir ws = Rien
Définir wb = Rien
MsgBox “Extraction groupée terminée. Sortie enregistrée dans : ” & savePath
Fin du sous-marin
Fonction GetPDFFilesInFolder (ByVal dossierPath As String) As String ()
‘ Récupère tous les fichiers PDF dans le dossier spécifié
Dim fichiers () en tant que chaîne
Dim fileCount sous forme d’entier
nombre de fichiers = 0
Dim fileName As String
nomfichier = Dir (chemin du dossier & “*.pdf”)
Faire pendant que nomfichier <> “”
ReDim Préserver les fichiers (0 à fileCount)
fichiers (fileCount) = fileName
fileCount = fileCount + 1
nomfichier = Rép
Boucle
GetPDFFilesInFolder = fichiers
Fonction de fin
Fonction ExtractDataFromPDF (ByVal pdfPath As String) As String
‘ Extraire les données d’un fichier PDF à l’aide de PDFsharp
‘ Créer un document PDF
Dim document comme nouveau PdfSharp.Pdf.PdfDocument
‘ Ouvrir le fichier PDF
document.Open(pdfPath)
‘ Extraire le texte de chaque page
Dim extraitData As String
données extraites = “”
Dim pageCount sous forme d’entier
pageCount = document.PageCount
Dim i comme entier
Pour i = 0 À pageCount – 1
Dim page As PdfSharp.Pdf.PdfPage
page = document.Pages(i)
Atténuer le contenu en tant que PdfSharp.Pdf.Content.PdfContentReader
content = Nouveau PdfSharp.Pdf.Content.PdfContentReader(page)
Pendant que content.Read()
Si content.GetType() est GetType(PdfSharp.Pdf.Content.PdfLiteral) alors
Dim littéral As PdfSharp.Pdf.Content.PdfLiteral
littéral = DirectCast (contenu, PdfSharp.Pdf.Content.PdfLiteral)
extraitData = extraitData & littéral.Value
Fin si
Terminer pendant
Ensuite je
‘ Ferme le document PDF
document.Fermer
ExtractDataFromPDF = extraitData
Fonction de fin
Ce que j’ai essayé :
J’ai créé une classe dans Visual Studio, installé la bibliothèque PDFsharp via le gestionnaire de packages NuGet et créé la solution pour recevoir une DLL que je peux utiliser comme référence dans Excel VBA. Cependant, lorsque j’essaie d’ajouter la DLL, je ne peux pas. De plus, j’ai simplement essayé d’ajouter la DLL PDFsharp du package NuGet, qui a également échoué.
Veuillez voir la vidéo de reproduction ici : https://app.screencast.com/MJmEkYKUsnGsw
[ad_2]
コメント