Dieses Code-Sample liest in Microsoft Word mittels eines vba-Makros Dateien in das Word-Dokument ein.
Dabei wird die Import-Datei als TextStream geöffnet und Zeile-für-Zeile eingelesen.
Dieser vba-Code hat den Vorteil, dass man Spezielle Text-Zeilen oder Bereiche beim Import filtern oder anpassen kann.
Betrifft: Import gilt auch für Excel, Powerpoint, Access
Dateiformat sollte Text-Basierend sein.
Dieser Test liest eigentlich alle mögliche Dateien mit verschiedenen Formaten ein.
Allerdings sind die gezeigten Einlese-Ergebnisse nur in Text-Dateien, txt, csv und ähnlich sinnvoll.
Option Explicit On
Sub Read_PDF_File() '------------------< Read_PDF_File() >------------------ '<# Late-binding > 'Dim fso 'Set fso = CreateObject("Scripting.FileSystemObject") '</# Late-binding >
'< Reference Binding > Dim fs As FileSystemObject Set fs = New FileSystemObject '</ Reference Binding >
Dim sFilename As String sFilename = "C:\_Daten\Desktop\Demo\Word\2018-10-08_PDF_einlesen\Import_File_as_Text.txt" 'Import_File_as_PDF.pdf
Dim file_to_Read As TextStream Set file_to_Read = fs.OpenTextFile(sFilename, 1) '1:open as readonly
Dim sText_Line As String Dim iLine As Integer iLine = 0
'< output > Selection.TypeText "Filename=" & sFilename Selection.TypeParagraph '</ output >
'----< @Loop: Read Line-by-Line >---- Do While file_to_Read.AtEndOfStream <> True '--< Read Line >-- iLine = iLine + 1
'< read > sText_Line = file_to_Read.ReadLine() '</ read >
'< add in word > Selection.TypeText sText_Line Selection.TypeParagraph
'Selection.InsertAfter vbCrLf 'Selection.InsertAfter sText_Line
'If sText_Line Like "*ine*" Then ' MsgBox "Line" ' Selection.InsertAfter sText_Line 'End If '</ add in word >
'--</ Read Line >-- Loop '----</ @Loop: Read Line-by-Line >----
'< End > file_to_Read.Close Set file_to_Read = Nothing MsgBox "Done Lines=" & iLine '</ End > '------------------</ Read_PDF_File() >------------------ End Sub
|
Ergebnisse bei
Text-Dateien Import_File_as_Text.txt
ODT: Open Documente ODT direkt eingelesen
RTF: RTF Dokument direkt zeilenbasierend eingelesen