1

У меня есть таблица данных, и мне нужно перенести ее в Excel. Я нашел несколько сайтов, которые предлагали скопировать и вставить в MS Word, а затем использовать "Преобразовать текст в таблицу", который, к сожалению, не работает, так как столбцы имеют пробел между ними, но если я выберу пробел в качестве разделителя столбцов, разбивает столбцы, содержащие несколько слов, на разные столбцы.

Есть ли лучший рекомендуемый способ получить таблицу из PDF-файла в Excel?

3 ответа3

1

Все гораздо проще, чем упомянуто в другом ответе.

В Acrobat/Reader выберите инструмент «Выделение текста» и откройте таблицу полностью.

Теперь нажмите клавишу Ctrl/Option и выберите таблицу. Вы заметите, что курсор изменится. Когда выбор будет завершен, вы можете скопировать и вставить в Excel.

0

Немного опоздал на вечеринку, но в пользу любого, кто найдет это через Google:

Есть много бесплатных веб-сервисов, которые вы можете использовать для этого вместо того, чтобы бороться с копированием через Word и т.д. Выбор правильного сервиса зависит от вашего PDF и потребностей.

Является ли весь файл таблицей, и вы хотите преобразовать все это? -> Попробуйте https://smallpdf.com/pdf-to-excel

Есть ли отдельные таблицы, например, на странице с большим количеством другого текста, который вы хотите скопировать? -> Попробуйте https://tabellopdf.com

Является ли ваш PDF отсканированным файлом (т.е. это изображение, сохраненное в формате PDF)? -> Попробуйте https://www.pdftoexcel.com/

0

Я хотел бы предложить вам код 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 столбца (RED Color Value), поэтому значение For Loop Step & Resize равно 3.Вы меняете в соответствии с вашей структурой данных.

Надеюсь, это поможет вам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .