Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2013, 17:17   #11
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

уже нарисовалась картина... попадается <td width='66%'> в строке <p class=MsoNormal><td width='66%'>(.+?)</p>, как бы пропустить эту гадость?
и можно ли сразу работать с несколькими регулярными выражениями?
xamillion вне форума Ответить с цитированием
Старый 22.03.2013, 18:07   #12
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Цитата:
Сообщение от xamillion Посмотреть сообщение
<td width='66%'> в строке <p class=MsoNormal><td width='66%'>(.+?)</p>, как бы пропустить эту гадость?
придумал пока так...
<p class=MsoNormal></td><td width='*\d\d%'>(.+?)</p>
xamillion вне форума Ответить с цитированием
Старый 22.03.2013, 21:09   #13
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

xamillion, в чем задача вообще? Извлечь из html файла одно число, все числа или таблицу?
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 23.03.2013, 01:14   #14
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
xamillion, в чем задача вообще? Извлечь из html файла одно число, все числа или таблицу?
Первоначально планировалось открывать посредством vba из excel сохраненный заранее html-файл и из него брать выборочно данные... все бы ничего если бы не ограничение в 15 разрядов числа в excel'e... еще бы excel соображал присваивать более длинным числам текстовый формат... да фиг там - он лучше ноликов наставит ну да ладно...

doober'ом было предложено регулярными выражениями из тегов получать данные... вроде получается... В итоге формируется некий лист с данными, из которого по шаблону формируется doc'a.

Днем в перерывах от звонков, от отвлеканий коллегами, от посетителей пытался постигнуть великолепие REGEX... Затем Вы подкинули идейку с добавлением одинарной кавычки... Задумался - идейка и впрямь достойная...

Теперь пытаюсь реализовать либо добавление перед каждым числом более 15 разрядов кавычку в html-файле, либо буду дальше выдергивать как получается "регулярками". А возможно и таблицы выдергивать придется.... только вот не все столбцы в таблице нужны... тут надо подумать... ну то ладно - дойду буду думать...

Было бы красиво напрямую с браузера тянуть, но увы опыта в написании скрипта для браузера нет.

Подведу итог что вообще пытаюсь сделать вкратце:
html - excel - word
звено excel - word уже реализовано...

спасибо за внимание и помощь...
xamillion вне форума Ответить с цитированием
Старый 23.03.2013, 03:24   #15
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от xamillion Посмотреть сообщение
Было бы красиво напрямую с браузера тянуть, но увы опыта в написании скрипта для браузера нет.
Это не проблема

Код:
Sub Вперед_За_Орденами()
    WebBrowser1.Navigate "E:\test.html"

    While WebBrowser1.ReadyState <> 4
        DoEvents
    Wend
    For Each X In WebBrowser1.Document.GetElementsByTagName("table")

        For n = 0 To X.Rows.Length - 1
            For m = 0 To X.Rows(n).Cells.Length - 1
                Debug.Print X.Rows(n).Cells(m).innertext
            Next
        Next
    Next
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 23.03.2013, 05:46   #16
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Код:
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" ( _
ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long

Private Const WM_CLOSE As Long = &H10

Private Sub IEclose()
Dim lhWnd As Long
Do
lhWnd = FindWindowEx(0&, lhWnd, "IEFrame", vbNullString)
        If lhWnd Then PostMessage lhWnd, WM_CLOSE, 0&, 0&
Loop While lhWnd
End Sub


Sub FromHTMLtoXLS()

IEclose

Range("A:E").ClearContents

Set WebBrowser1 = CreateObject("InternetExplorer.Application")


WebBrowser1.Visible = False

    WebBrowser1.Navigate "E:\test.html"

    While WebBrowser1.ReadyState <> 4
        DoEvents
    Wend
    

    For Each x In WebBrowser1.Document.GetElementsByTagName("table")

        j = j + 1

        For n = 0 To x.Rows.Length - 1
        k = 1

            For m = 0 To x.Rows(n).Cells.Length - 1
            
                Debug.Print x.Rows(n).Cells(m).innertext
                
                    Cells(j, k) = "'" & x.Rows(n).Cells(m).innertext
                    k = k + 1

            Next
            j = j + 1
            
        Next
    Next
    WebBrowser1.Quit
End Sub
так уже тянет таблицы в excel... не спится же...
да и кавычку добавляет... ну на всякий закрываем IE...
Может кому пригодится...

Последний раз редактировалось xamillion; 23.03.2013 в 22:52.
xamillion вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конфликт при открытии файла версий 2003 в 2007-2010 Excel Blame Microsoft Office Excel 5 28.03.2012 14:15
при открытии excel файла запрашивает пароль SolidSnake Microsoft Office Excel 9 08.06.2011 19:25
Счетчик при каждом открытии Excel в ячейке Йогурт Microsoft Office Excel 9 11.05.2010 06:48
неверное преобразование даты при открытии DBF файла в MS Excel 2007 Serge_Bliznykov Microsoft Office Excel 13 26.11.2009 09:37