Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Visual Basic Новый топик    Ответить
 Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
Zarif
Member

Откуда:
Сообщений: 5
Добрый день, Эксперты! Подскажите, пожалуйста, можно ли считать данные с html файла (отчет в виде таблицы) с помощью VBA в excel? дело осложняется тем что в самом файле по мимо таблицы куча других данных, мне нужно только вытащить данные из таблицы.
28 дек 18, 09:00    [21775420]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 18756
Zarif
можно ли считать данные с html файла (отчет в виде таблицы) с помощью VBA в excel?

Кто мешает? Берёте файл, очищаете от разметки (пихаете в веб-браузер как innerHTML, и забираете как innerText), затем находите и парсите свою таблицу.
28 дек 18, 09:17    [21775432]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
Zarif
Member

Откуда:
Сообщений: 5
Спасибо за ответ! Рад что это возможно)
Я извиняюсь, просто в этом деле "зеленый" если не затруднит можно накидать скрипт, приблизительный. Если честно настолько "зеленый" что не понимаю зачем нужно преобразовывать в innerHtml и что это такое)
28 дек 18, 09:27    [21775444]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
Казанский
Member

Откуда:
Сообщений: 1302
Zarif,
можно попробовать и без скрипта: Данные - Получить внешние данные - Из веба. Вставляете адрес web-страницы или путь к файлу, выбираете нужную таблицу, задаете параметры - периодичность обновления и т.д.
Можно записать это действие в макрос и допилить по потребности.
28 дек 18, 10:14    [21775475]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
dvim
Member

Откуда: Санкт Петербург
Сообщений: 649
Zarif,
1 Получить данные html
Либо просто открыть как файл, либо сделав get запрос
2 Далее парсим его как строку.
Через поиск подстроки находим нужную таблицу ( по id/классу)
Потом парсим табличные данные туда, куда вам надо
28 дек 18, 10:27    [21775490]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
Zarif
Member

Откуда:
Сообщений: 5
Спасибо за ответы.
Да можно выбрать в ручную и скопировать в буфер затем в ручную вставить в Excel. Это занимает время и не очень удобно.

Дело в том что я хотел бы не много автоматизировать процесс, по нажатию кнопки происходил бы выбор файла html (отчет) и считывалось бы из него только таблица.

Как мне:
1. Открыть файл html (который лежит в компе (оффлайн))?
2. Считать данные этого файла?
3. Произвести выборку (поиск таблицы) из кучи информации? (сам файл отчета в приложении, в конце таблица)
28 дек 18, 13:30    [21775689]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
Zarif
Member

Откуда:
Сообщений: 5
Извиняюсь, файл отчета забыл прикрепить. В этом отчете мне нужна лишь таблица в самом конце этого большого файла.

К сообщению приложен файл (ПРЗ 53 8225г рейс 3_с 6тью осями.zipx - 27Kb) cкачать
28 дек 18, 13:32    [21775695]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
iMrTidy
Member

Откуда:
Сообщений: 715
Zarif
Спасибо за ответы.
Да можно выбрать в ручную и скопировать в буфер затем в ручную вставить в Excel. Это занимает время и не очень удобно.

Дело в том что я хотел бы не много автоматизировать процесс, по нажатию кнопки происходил бы выбор файла html (отчет) и считывалось бы из него только таблица.

Как мне:
1. Открыть файл html (который лежит в компе (оффлайн))?
2. Считать данные этого файла?
3. Произвести выборку (поиск таблицы) из кучи информации? (сам файл отчета в приложении, в конце таблица)


1. Руководство для начинающих как открыть Html.
2. MSXML.DOMDocument класс позволит осуществлять манипуляции с Html.
3. Произвести выборку можно либо итерируя Nodes, либо при помощи XPath. Либо комбинируя их.
28 дек 18, 14:20    [21775760]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
Zarif
Member

Откуда:
Сообщений: 5
Спасибо! буду пробывать идти этим путем!!! надеюсь смогу решить задачу.
28 дек 18, 14:33    [21775775]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
iMrTidy
Member

Откуда:
Сообщений: 715
Zarif
Спасибо! буду пробывать идти этим путем!!! надеюсь смогу решить задачу.


Пробовать это хорошо. Обращайтесь, если будут вопросы по ньюансам.
28 дек 18, 14:45    [21775795]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
Казанский
Member

Откуда:
Сообщений: 1302
iMrTidy
Обращайтесь, если будут вопросы по ньюансам.
нюансам. Картинка с другого сайта.
28 дек 18, 22:56    [21776096]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
iMrTidy
Member

Откуда:
Сообщений: 715
Казанский,
Картинка с другого сайта.
29 дек 18, 00:03    [21776122]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
iMrTidy
Member

Откуда:
Сообщений: 715
Казанский,

Это можно в башорг кинуть!
29 дек 18, 00:04    [21776123]     Ответить | Цитировать Сообщить модератору
 Re: Считывание данных с html файла (отчет в виде таблицы) с помощью VBA в excel  [new]
Казанский
Member

Откуда:
Сообщений: 1302
Zarif
В этом отчете мне нужна лишь таблица в самом конце этого большого файла
То есть таблица, которая имеет этот заголовок?

Врем	т.зам.	Gx	Д	Gy	Д	Gz	Д	Bx	Д	By	Д	Bz	Д

Где нужен результат - в новой книге, или в новом листе книги с кнопкой, или на листе с кнопкой начиная с активной ячейки?
Вот например макрос для импорта таблицы на новый лист, полученный правкой записанной команды из моего первого ответа
Sub Макрос2()
Dim x
  x = Application.GetOpenFilename("HTML Files (*.htm*),*.htm*")
  If x = "False" Then Exit Sub
  Worksheets.Add , ActiveSheet
  With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;" & x, Destination:=Range("$A$1"))
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlSpecifiedTables
    .WebFormatting = xlWebFormattingNone
    .WebTables = "9"                      'номер таблицы
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = True     'при обычном открывании Excel старается преобразовать числа с точками в даты
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
    .Delete
  End With
End Sub
2 янв 19, 19:37    [21777659]     Ответить | Цитировать Сообщить модератору
Все форумы / Visual Basic Ответить