我有一张数据表,需要将其导入 Excel。我找到了一些网站,建议将其复制并粘贴到 MS Word 中,然后使用“将文本转换为表格”,但不幸的是,这种方法行不通,因为列之间有空格,但如果我选择空格作为列分隔符,它会将包含多个单词的列分成不同的列。
有没有更好的推荐方法将 PDF 文件中的表格导入 Excel?
答案1
整个事情比其他答案中提到的要简单得多。
在 Acrobat/Reader 中,选择文本选择工具,并将表格置于完整视图中。
现在按下 Ctrl/Option 键并选择表格。您会注意到光标会发生变化。选择完成后,您可以复制并粘贴到 Excel 中。
答案2
我想向您推荐 VBA 代码,这会将复制的数据表从 PDF 转置到 Excel。
按照下面书面的步骤进行操作。
- 从 PDF 文件复制表格数据。
- 粘贴到 Excel 表的某一列中。
- 运行 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。您可以根据数据结构进行更改。
希望这对你有帮助。