Как автоматизировать вход в веб-запрос для загрузки данных в Microsoft Excel 2007? - PullRequest
3 голосов
/ 15 июня 2010

Кто-нибудь может поделиться знаниями о том, как автоматизировать веб-запрос в Ms.Excel 2007 путем автоматического запуска сеанса?

Моя проблема заключается в том, что мне нужно каждый раз вручную входить через веб-запрос....

Ответы [ 3 ]

0 голосов
/ 23 февраля 2012

По моему опыту, это невозможно.Интерфейс веб-запросов Excel просто не имеет возможности сделать это.Я прибегнул к получению веб-данных через VBA и вставке их в лист для автоматизации части входа в систему.Смотрите http://www.dailydoseofexcel.com/archives/2011/03/08/get-data-from-website-that-requires-a-login/ и обязательно читайте комментарии.

0 голосов
/ 23 февраля 2012

У меня точная проблема ..

С небольшим Vba Macro я могу автоматизировать передачу данных ... но мне все равно придется начинать сеанс вручную ..

С небольшимВ коде вы можете автоматизировать передачу данных в Excel, вы можете записывать каждую строку данных автоматически, используя некоторые циклы do.Например;

Do 

If getVars = "" or getVars = Null Then
    Exit Do
End If

Set RangeOfStyles = Range("A1:Z400")

'Clear the xlSheet
For Each Cell In RangeOfStyles
        On Error Resume Next
        ActiveWorkbook.Styles(Cell.Text).Delete
        ActiveWorkbook.Styles(Cell.NumberFormat).Delete
Next Cell

DoEvents
'Use a counter for detecting the range of recieved data in table
'This only works if there is nospace inside the recieved data
'Create a start point
i = 2

'Find the start point
'Will be used if there are some data already found..
'If the starting cell is not empty than start counting
If Cells(i, 2) <> ""  Then

    Do
        Do
            i = i + 1          '2 cause my data starts at column "B2" and row 2
        Loop Until Cells(i + 1, 2) = "" 'if next cell is empty than it ends here
        'im leaving an empty row to seperate each data
        'i must check the row after the empty row to find out if there are more data
        '+1 for empty cell and +1 for starting cell
        i = i + 2
    Loop Until Cells(i, 2) = ""

End If

'Now that we are ready we can paste our next data to the next rows of our worksheet
'Get ur url pasted to the excel
With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;http://127.0.0.1" + getVars, _ 'I used your url here to make it more simpler
    Destination:=Range("B" & i, "I" & i))
    'Use this ability only if you need to gather a specific table in that page
    .WebSelectionType = "xlSpecifiedTables"
    'Webtables = "ChosenTable"
    .WebTables = "10"
    'The other attributes! Nothing fancy here..
    .BackgroundQuery = True
    .TablesOnlyFromHTML = True
    .Refresh BackgroundQuery:=False
    .SaveData = True   
End With


Loop
0 голосов
/ 15 июня 2010

ИСПОЛЬЗУЙТЕ C # COM-ИНТЕРФЕЙС ДЛЯ EXCEL, ЧТОБЫ ВЫ МОЖЕТЕ ВСТАВИТЬ ЛЮБЫЕ ДАННЫЕ В EXCEL ...... нажмите Google, используя следующие ключевые слова для поиска, и вы получите 100 результатов за это

, используя Excel = Microsoft.Office.Interop.Excel;

Теперь вышесказанное в основном возможно только в ASP.NET.В противном случае получите интерфейс для Excel с вашим соответствующим языком программирования.

Изменение поведения и генерация исключения нулевой ссылки

посмотрите, что вы получите некоторое представление ..

...