HelloWorld_Peng666 2024-05-06 16:09 采纳率: 69.2%
浏览 3

PDF转Excel后,某些行缺少换行符的问题

用word打开PDF文档后,然后将word的内容复制粘贴到Excel中,但是发现有时候原来PDF文档里的表格里的某一行会折行到上面一行的尾部了,用什么方式可以避免这种情况发生,想让粘贴到Excel里的结构和在PDF里的结构保持一样。
用VBA怎么实现将PDF表格转到(复制到)Excel中,保持结构一致(不发生后面一行接在前一行末尾的情况)。

  • 写回答

5条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-05-06 16:09
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    针对这个问题,可以采取以下几个方式来避免PDF表格转到Excel后出现行折行情况: 1.打开PDF文档时将其转换成Excel格式,这样复制粘贴到Excel中时就不会出现折行情况。可以使用一些PDF转Excel的工具进行转换,例如Adobe Acrobat DC Pro或者在线PDF转Excel工具。 2.将PDF文档复制到Word中,然后在Word中进行格式调整,并将调整好的内容复制粘贴到Excel中。这样也能够避免出现折行情况。 3.使用VBA代码将PDF表格转换为Excel,这样可以保证转换后的表格结构与PDF中保持一致。以下为VBA代码示例:
    Sub convertPDFtoExcel()
        Dim acrobat As Object
        Set acrobat = CreateObject("AcroExch.App")
        
        Dim pdDoc As Object
        Set pdDoc = CreateObject("AcroExch.PDDoc")
        
        pdDoc.Open "C:\path\to\pdf\file.pdf"
        
        Dim avDoc As Object
        Set avDoc = CreateObject("AcroExch.AVDoc")
        avDoc.Open "C:\path\to\pdf\file.pdf", ""
        
        Dim excelApp As Object
        Set excelApp = CreateObject("Excel.Application")
        
        Dim excelBook As Object
        Set excelBook = excelApp.Workbooks.Add
        
        Dim excelSheet As Object
        Set excelSheet = excelBook.Worksheets(1)
        
        Dim jso As Object
        Set jso = acrobat.GetActiveDoc
        
        Dim jsObj As Object
        Set jsObj = jso.GetJSObject
        
        Dim jsCode As String
        jsCode = "this.exportAsFDF({FDF: true});"
        Dim fdf As String
        fdf = jsObj.ExecuteJS(jsCode)
        
        Dim tempFDF As String
        tempFDF = Environ("temp") & "\" & Format(Now(), "yyyymmddhhmmss") & ".fdf"
        Dim fso As Object
        Set fso = CreateObject("Scripting.FileSystemObject")
        Dim file As Object
        Set file = fso.CreateTextFile(tempFDF, True)
        file.Write fdf
        file.Close
        
        Dim fdfFile As Object
        Set fdfFile = CreateObject("FdfApp.FdfDoc")
        fdfFile.Open tempFDF
        
        Dim xfdf As Object
        Set xfdf = fdfFile.FDFExtract
        
        Dim pageno As Integer
        For pageno = 0 To pdDoc.GetNumPages - 1
            avDoc.GoTo pageno, 0
            avDoc.SelectAll
            Dim selection As Object
            Set selection = avDoc.GetSelection
            selection.Copy
            
            excelSheet.activate
            excelSheet.Cells(1, 1).select
            excelSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
            
            Dim range As Object
            Set range = excelSheet.Range("A1")
            range.Select
        Next pageno
        
        fdfFile.Close
        pdDoc.Close
        avDoc.Close True
        excelBook.SaveAs "C:\path\to\excel\file.xlsx", FileFormat:=51
        excelBook.Close
        excelApp.Quit
        
        fso.DeleteFile tempFDF
    End Sub
    

    以上VBA代码可以实现将PDF文档的所有页转换为Excel表格,并将转换后的Excel文件保存到硬盘中。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月6日

悬赏问题

  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,
  • ¥15 angular项目错误