mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!

Функция импорта данных из HTML файлов

Функция FileQueryRange предназначена для импорта данных из файлов HTML

Например, если нам надо макросом Excel получить данные из писем, созданных в HTML формате, то эта функция как раз нам и поможет

Эта функция, по сути, аналогична другой - GetQueryRange, с тем лишь различием, что GetQueryRange работает с веб-страницами (исходными данными является гиперссылка, ведущая в интернет), а описываемая в этой статье FileQueryRange принимает в качестве параметра имя файла, расположенного на локальном компьютере.

Код функции импорта данных из HTML файла:

Function FileQueryRange(ByVal filename$, Optional ByVal Tables$) As Range
    ' функция загружает HTML файл filename$
    ' на скрытый лист tmpWQ (при его отсутствии - лист создаётся)
    ' возвращает диапазон ячеек, заполненный импортированными данными
    On Error Resume Next: Err.Clear
    Dim tmpSheet As Worksheet: Set tmpSheet = ThisWorkbook.Worksheets("tmpWQ")
    If tmpSheet Is Nothing Then
        Application.ScreenUpdating = False
        Set tmpSheet = ThisWorkbook.Worksheets.Add
        tmpSheet.Name = "tmpWQ"
        tmpSheet.Visible = xlSheetVeryHidden
    End If
    If tmpSheet Is Nothing Then
        msg$ = "Не удалось добавить скрытый лист «tmpWQ» в файл программы"
        MsgBox msg, vbCritical, "Невозможно выполнить запрос к файлу": End
    End If
 
    tmpSheet.Cells.Delete: DoEvents: Err.Clear
    With tmpSheet.QueryTables.Add("URL;file:///" & Replace(filename$, " ", "%20"), tmpSheet.Range("A1"))
        If Len(Tables$) Then
            .WebSelectionType = xlSpecifiedTables
            .WebTables = Tables$
        Else
            .WebSelectionType = xlEntirePage
        End If
        .FillAdjacentFormulas = False: .PreserveFormatting = True
        .RefreshOnFileOpen = False: DoEvents
        .WebFormatting = xlWebFormattingNone    ' или xlWebFormattingAll
        .Refresh BackgroundQuery:=False: DoEvents
        If Err = 0 Then Set FileQueryRange = tmpSheet.UsedRange
        .Delete: DoEvents
    End With
End Function

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Спасибо но уже разобрался в принципе пока сойдет. буду покупать

Могу настроить под заказ
заказы на парсер принимаются в таком виде
http://excelvba.ru/programmes/Parser/order
Высылайте архив с несколькими исходными файлами HTML, и пример результата в файле Excel

Да тогда необходима теперь другая задача, тк сервер сайта отдает файлы с трудом они наканачены, и как парсить их из файлов в папке с помощью вашего парсераЕ?
Сохранять прочтенный файл в переменную и уже потом ее разбирать?

С парсером, - всё получится
Он для таких задач и был создан

Да наверно не получится там страница в среднем весит 700кб и внутри 300000 символов

Я бы хотел разобрать сам в коде макроса. но и куплю наверно парсер
У меня была старая версия парсера, там я видел такую функцию, но фишка в том что ссылка на файл считывания в действии считывания текста из текстового файла не передавалась втоматически никаким действие, я нашел только считывание ссылки в переменную из ячейки, когда файлы в размере сотен штук сами понимаете не будешь вечно копировать эту ссылку, по крайней мере в той версии парсера.2_8 вроде или 2_9 не помню.

проще настроить программу-парсер под эту задачу:
http://excelvba.ru/programmes/Parser
Если сами не разберетесь, - могу настроить под заказ.

Привет. Мне нужно из папки с кучей хтмл файлов, прочитать каждый файл и дальше загрузить его в один столбец напротив пути и названия этого файла . один файл одна ячейка.

как из этих функций соббрать работающий парсер?
я пытался собрать из функций DATfolder2Array и например http://excelvba.ru/code/FileQueryRange
но ниче не получается
файлы с расширением .htm

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
  _____   ____                   _____   ___ 
|_ _| | __ ) ___ __ _ | ___| |_ _|
| | | _ \ / __| / _` | | |_ | |
| | | |_) | | (__ | (_| | | _| | |
|_| |____/ \___| \__, | |_| |___|
|_|
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.