Есть ли способ, с помощью которого программа для работы с электронными таблицами (например, Excel) может взаимодействовать с поисковой системой (например, Google или WolframAlpha?)

Идеальным методом был бы макрос Excel, который мог бы задавать вопросы поисковой системе и возвращать результаты. Просто количество попаданий будет достаточно.

На втором месте - поисковая система, которая может импортировать файлы типа .csv и сохранять результаты.

Кто-нибудь знает о таком продукте?

2 ответа2

2

Да. Это возможно. Я успешно автоматизировал Internet Explorer в Excel, чтобы включить авиационную погоду в таблицу Excel. Выполните поиск в Google, чтобы автоматизировать работу интернет-обозревателя, и вы захотите восстановить внутренний текст в соответствии с тем, что вы ищете. Это выдержка из этого кода для получения информации о погоде и высоте полета в конкретном аэропорту. Код написан на VBA. Вы можете загрузить файл CSV в Excel, а затем перебрать записи, запускающие макрос для результатов.

On Error GoTo errHandler
Dim adPost() As Byte, strPage As String
Set ie = CreateObject("InternetExplorer.Application")
'ie.Visible = True

adPost = StrConv("station_ids=" & strAirport & "&std_trans=1, ", vbFromUnicode)

ie.navigate "http://aviationweather.gov/adds/metars/index.php", , , adPost, _
  "Content-Type: application/x-www-form-urlencoded" & vbCrLf

Do While ie.busy: DoEvents: Loop
Do While ie.ReadyState <> 4: DoEvents: Loop

Dim strText As String, strElevation As String, strAPName As String, strAirportInfo As String

strText = ie.document.body.innertext

Debug.Print strText
strText = Right(strText, Len(strText) - InStr(1, strText, strAirport) + 1)

ie.navigate "http://www.airnav.com/airport/" & strAirport
Do While ie.busy: DoEvents: Loop
Do While ie.ReadyState <> 4: DoEvents: Loop
ie.Visible = True

strAirportInfo = ie.document.body.innertext
strElevation = Left(strAirportInfo, 500)
strAPName = Left(strElevation, 150)
If InStr(1, strElevation, "Elevation") > 0 Then
  strElevation = Right(strElevation, Len(strElevation) - InStr(1, strElevation, "Elevation") + 1)
  strElevation = Left(strElevation, InStr(1, strElevation, "."))
  strElevation = Left(strElevation, InStr(1, strElevation, " ft.") - 1)
  strElevation = Right(strElevation, Len(strElevation) - InStr(1, strElevation, " "))
Else
  strElevation = ""
End If

Debug.Print strAPName
If InStr(1, strAPName, strAirport) > 0 Then
  strAPName = Right(strAPName, Len(strAPName) - InStr(1, strAPName, strAirport) - 3)
  strAPName = Left(strAPName, InStr(1, strAPName, "GOING TO") - 1)
  strAPName = Trim(Replace(strAPName, vbCrLf, " "))
Else
  strAPName = strAirport
End If
0

У них есть что-то очень близкое и позволяющее экспортировать:http://www.google.com/squared

Если это не совсем то, что вы ищете, то решение wbeard, хотя и требует кодирования, является очень хорошим ответом.

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