У меня есть этот код vb.net, который отлично подходит для объединения всех PDF-файлов в пути к каталогу на основе критериев, содержащихся в PDF-файле. Новая проблема заключается в том, что в этом каталоге будет более 1000 PDF-файлов, а у пользователя будет список конкретных PDF-файлов по имени файла в столбце Excel, который необходимо будет разделить / объединить по указанным критериям для конкретного дня.
скажем, например, каталог имеет
ZTEST11.SAMPLE01
ZTEST12.SAMPLE02
ZTEST13.SAMPLE03
ZTEST14.SAMPLE04
ZTEST15.SAMPLE05
ZTESTN + 1 ....
Но из всех перечисленных в моем файле Excel только в столбце A (и номера строк будут меняться ежедневно):
ZTEST11.SAMPLE01
ZTEST13.SAMPLE03
ZTEST15.SAMPLE05
Так что это единственные файлы, на которые я хочу, чтобы мой код влиял.
Мой код такой
Модуль Модуль1
Class PageType
Property Identifier As String
Property TypeName As String
End Class
Sub Main(ByVal args As String())
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim range As Excel.Range
xlApp = New Excel.Application
xlWorkBook = xlApp.Workbooks.Open("C:\Users\XBorja.RESURGENCE\Desktop\xavier.xlsx")
xlWorkSheet = xlWorkBook.Worksheets("sheet1")
range = xlWorkSheet.UsedRange
Dim dir = "G:\Word\Department Folders\Pre-Suit\Drafts-IL\2-IL_AttyReview\2018-09\Reviewed\"
Dim unmerged = Combine(dir, "unmerged")
' Set up a list of the identifiers to be searched for and the corresponding names to be used in the filename.
Dim pageTypes As New List(Of PageType)
Dim ids = {"COVERSPLIT", "COMPLAINTSPLIT", "EXHIBITSPLIT", "MILSPLIT", "SUMSPLIT"}
Dim nams = {" Cover Sheet ", " Complaint ", " Exhibit ", " Military ", " Summons "}
' For Each inputfile As String In Directory.GetFiles(dir, "*.pdf")
For Each aCell In range
MsgBox(aCell.Value)
For Each inputfile As String In Combine(dir, aCell.value)
For i = 0 To ids.Length - 1
pageTypes.Add(New PageType With {.Identifier = ids(i), .TypeName = nams(i)})
Next
xlWorkBook.Close()
xlApp.Quit()
releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)
Dim extractor As New TextExtractor()
' Load sample PDF document
extractor.LoadDocumentFromFile(inputfile)
Dim pageCount = extractor.GetPageCount()
Dim currentPageTypeName = "UNKNOWN"
Dim Path As String = IO.Path.GetFileNameWithoutExtension(inputfile)
Dim extracted = Path.Substring(0, 7)
' Search each page for a keyword
For i = 0 To pageCount - 1
' Find the type of the current page
' If it is not present on the page, then the last one found will be used.
For Each pt In pageTypes
If extractor.Find(i, pt.Identifier, False) Then
currentPageTypeName = pt.TypeName
End If
Next
' Extract page
Using splitter As New DocumentSplitter() With {.OptimizeSplittedDocuments = True}
Dim pageNumber = i + 1 ' (!) page number in ExtractPage() is 1-based
If Not Directory.Exists(dir & "\unmerged") Then
Directory.CreateDirectory(dir & "\unmerged")
End If
Dim outputfile = Combine(unmerged, extracted & currentPageTypeName & pageNumber & ".pdf")
splitter.ExtractPage(inputfile, outputfile, pageNumber)
Console.WriteLine("Extracted page " & pageNumber & " to file """ & outputfile & """")
End Using
Next
extractor.Dispose()
Next ' for each
Next
Call Xavier()
End Sub
Как вы можете видеть, я добавил в этой части, чтобы моя книга Excel открылась, и зачитал мне каждое значение ячейки в столбце A, которое является номерами файлов PDF, которые я хочу объединить.
Это отлично работает. Но как мне получить эти значения в моем коде, чтобы код знал, какие именно PDF-файлы я хочу объединить в выбранном каталоге?
Вы можете увидеть, что я прокомментировал: для каждого входного файла в виде строки в Directory.GetFiles (dir, "* .pdf")
Это то, что я использовал раньше, чтобы мой код объединял все PDF-файлы в этом каталоге на основе критериев, которые я определил.
Как мне исправить это, чтобы значения моих ячеек превратились в строковые значения, чтобы мой код мог перебирать каждое значение ячейки в виде файла PDF в моем каталоге, чтобы выбрать их для слияния?