从大量pdf文件中提取数据到Excel中,用python还是用VBA?( 二 )


■网友
VBA功能还没有这么强大,单纯的处理Excel,VBA还好。可是看题主的描述,是从pdf取数据存放到Excel,这个VBA就很难很难处理了,甚至不能处理。“之前想通过python或者VBA(说的不对轻喷)看看可不可以通过类似爬虫的方式来实现”这个题主的意思应该是从pdf中提取对应的文字或数据(不考虑扫描版那种pdf),用Python可以实现,但难易程度跟数据的规整程度有关系。另外如果pdf取的是表格数据,要麻烦很多,不是很好处理。题主可以先学着试试吧。
■网友
可以使用 Python 第三方库 PDFMiner 读取PDF 文件,再转化为字符,但是这个方法对图像格式的 PDF 没有用。还是比较简单的,建议用Python,VBA 语法更难。
■网友
Function getTextFromPDF(ByVal strFilename As String) As String Dim objAVDoc As New AcroAVDoc Dim objPDDoc As New AcroPDDoc Dim objPage As AcroPDPage Dim objSelection As AcroPDTextSelect Dim objHighlight As AcroHiliteList Dim pageNum As Long Dim strText As String \u0026#39;使用Adobe自己的库 strText = "" If (objAVDoc.Open(strFilename, "")) Then Set objPDDoc = objAVDoc.GetPDDoc For pageNum = 0 To objPDDoc.GetNumPages() - 1 Set objPage = objPDDoc.AcquirePage(pageNum) Set objHighlight = New AcroHiliteList objHighlight.Add 0, 10000 \u0026#39;如果没有得到页面上的所有文本,请进行调整 Set objSelection = objPage.CreatePageHilite(objHighlight) If Not objSelection Is Nothing Then For tCount = 0 To objSelection.GetNumText - 1 strText = strText \u0026amp; objSelection.GetText(tCount) Next tCount End If Next pageNum objAVDoc.Close 1 End If getTextFromPDF = strTextEnd Function


推荐阅读