如何使用Google.GData.Client.AtomLinkCollection.FindService方法获取Google电子表格中的工作表列表?

时间:2010-10-26 16:37:24

标签: vb.net google-api google-sheets

我正在尝试编写与Google Spreadsheets对话的代码。我们在最后做了一堆处理,然后将数据传递给我们的客户端到这个电子表格中,我想自动化它。这看起来应该很容易。

this page上,Google说“如果您已检索到SpreadsheetEntry,则可以在此电子表格中打印所有工作表的列表,如下所示:”

AtomLink link = entry.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, null);

WorksheetQuery query = new WorksheetQuery(link.HRef.ToString());
WorksheetFeed feed = service.Query(query);

foreach (WorksheetEntry worksheet in feed.Entries)
{
    Console.WriteLine(worksheet.Title.Text);
}

继续在家,我开始:

Dim link As AtomLink = Entry.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel, "")
Dim wsq As New WorksheetQuery(link.HRef.ToString)

当执行到达第二行时,我发现“对象引用未设置为对象的实例”。 FindService方法什么都没有返回。当我查看GDataSpreadsheetsNameTable.WorksheetRel时,它是“http://schemas.google.com/spreadsheets/2006#worksheetsfeed”的常量值

我还没有真正意识到自己想做什么。例如,什么是饲料?我认为它是基于Excel命名法的工作表吗?那种东西。但我发现可能引起我的问​​题的一些事情:

  1. C#方法调用“... FindService(GDataSpreadsheetsNameTable.WorksheetRel,null);”我不确定那个null。它需要一个字符串,所以我在VB中使用了“”,但我不确定是不是。
  2. 那个schemas.google.com URI似乎不是实时的。至少,如果我将它打入浏览器,我找不到服务器。但同样,我并不完全知道它正在做什么。
  3. 那么,有什么想法吗?任何人都有VB代码,可以阅读Google Spreadsheets并有时间指导新手吗?我很惊讶地发现网上有基本 no 的有用示例代码。

    感谢阅读!

1 个答案:

答案 0 :(得分:1)

所以,当然,在我发布之后我发现了here的一些灵感。即使不是首选的方法,手动迭代集合也可以正常工作。我仍然热衷于听取与此相关的其他人的信息,所以尽管我可能已经超过了这个障碍,但我还是感到鼓励帮助。

For Each Entry In mySprShFeed.Entries
    If Entry.Title.Text = "spreadsheetNameSought" Then
        For Each link As AtomLink In Entry.Links
            If link.Rel = GDataSpreadsheetsNameTable.WorksheetRel Then
                Dim wsf As WorksheetFeed = service.Query(New WorksheetQuery(link.HRef.ToString))
                For Each worksheet In wsf.Entries
                    Console.WriteLine(worksheet.Title.Text)
                Next

            End If
        Next
    End If
Next