使用excel查询从URL获取xml数据的子字符串

时间:2016-07-07 16:54:45

标签: excel excel-web-query

我在excel中有以下表格,其中col1 =电影ID,col2 =电影名称。我尝试使用excel网页查询来获取列表中所有电影的制作公司名称。

ID          Movie Name
tt1540741   A Single Shot (2013)
tt4630158   A Space Program (2015 Documentary)

例如     http://www.omdbapi.com/?i=tt2330270&tomatoes=true&plot=short&r=xml

该链接将返回包含生产公司名称的XML。

我不确定如何编写实现此目标的excel公式。

(我希望输出看起来像这样)

ID          Movie Name                         Production firm
tt1540741   A Single Shot (2013)                      ABC
tt4630158   A Space Program (2015 Documentary)        DEF

1 个答案:

答案 0 :(得分:0)

问题解决了。这是我的解决方案。请注意,行号在此处是固定的,您可以将其更改为动态。

此处的A列包含具有唯一影片ID的所有网址。 例如

http://www.omdbapi.com/?i=tt0811137&tomatoes=true&plot=short&r=xml

Sub getMovieInfo()
'  Application.ScreenUpdating = False
  Dim x As Integer
  ' Set numrows = number of rows of data.
  NumRows = 1491
  ' Select cell a1.
  Range("A1").Select
  ' Establish "For" loop to loop "numrows" number of times.
  For x = 1 To 1491
     ' Insert your code here.
     pos = "A" & x
     des = "$D" & x
    ActiveWorkbook.XmlImport URL:=Cells.Item(x, "A"), _
    ImportMap:=Nothing, Overwrite:=True, Destination:=Sheets("Sheet3").Range(des)
   ' Sheets("Sheet1").Range(des).Value = Cells.Item(x, "A")
    Application.Wait (Now + TimeValue("00:00:2"))

    If (IsEmpty(Sheets("sheet3").Range(des)) = True) Then
    Application.Wait (Now + TimeValue("00:00:10"))
        If (IsEmpty(Sheets("sheet3").Range(des)) = True) Then
        Exit Sub
        End If
    End If

     ActiveCell.Offset(1, 0).Select
  Next
  End Sub