如何将 PDF 文件中的数据表复制到 Excel 中?

如何将 PDF 文件中的数据表复制到 Excel 中?

我有一张数据表,需要将其导入 Excel。我找到了一些网站,建议将其复制并粘贴到 MS Word 中,然后使用“将文本转换为表格”,但不幸的是,这种方法行不通,因为列之间有空格,但如果我选择空格作为列分隔符,它会将包含多个单词的列分成不同的列。

有没有更好的推荐方法将 PDF 文件中的表格导入 Excel?

答案1

整个事情比其他答案中提到的要简单得多。

在 Acrobat/Reader 中,选择文本选择工具,并将表格置于完整视图中。

现在按下 Ctrl/Option 键并选择表格。您会注意到光标会发生变化。选择完成后,您可以复制并粘贴到 Excel 中。

答案2

我想向您推荐 VBA 代码,这会将复制的数据表从 PDF 转置到 Excel。

按照下面书面的步骤进行操作。

  1. 从 PDF 文件复制表格数据。
  2. 粘贴到 Excel 表的某一列中。
  3. 运行 VBA 代码。

检查屏幕截图。

在此处输入图片描述

Private Sub CommandButton1_Click()
Dim xLRow As Long
    Dim xNRow As Long
    Dim i As Long
    Dim xUpdate As Boolean
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String

    On Error Resume Next

    xTxt = ActiveWindow.RangeSelection.Address

    Set xRg = Application.InputBox("Select Data Range(only one column):", "Transpose to Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count > 1) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "Used range only contain one column", , "Transpose to Excel"
        Exit Sub
    End If

    Set xOutRg = Application.InputBox("Select output range(specify one cell):", "Transpose to Excel", xTxt, , , , , 8)

    If xOutRg Is Nothing Then Exit Sub

    Set xOutRg = xOutRg.Range(1)

    xUpdate = Application.ScreenUpdating
    Application.ScreenUpdating = False
    xLRow = xRg.Rows.Count

    For i = 1 To xLRow Step 3
        xRg.Cells(i).Resize(3).Copy
        xOutRg.Offset(xNRow, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
        xNRow = xNRow + 1
    Next
    Application.ScreenUpdating = xUpdate

End Sub

注意: 我用来测试代码的数据有 3 列(红色值),因此 For Loop Step 和 Resize 值为 3。您可以根据数据结构进行更改。

希望这对你有帮助。

相关内容