0

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

此页面上,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);” 我不确定那个空值。它需要一个字符串,所以我在我的 VB 中使用了 "",但我不确定那是正确的。
  2. 该 schemas.google.com URI 似乎不存在。至少,如果我将它打入浏览器,我会找不到服务器。但同样,我不完全知道它想做什么。

那么,有什么想法吗?任何人都有读取 Google 电子表格的 VB 代码和时间来指导新手?我惊讶地发现网上基本上没有有用的示例代码。

谢谢阅读!

4

1 回答 1

1

所以,当然,在我发布这个之后,我在这里找到了一些灵​​感。手动迭代集合工作得很好,即使它不是执行此操作的首选方式。我仍然很想从其他人那里听到与此相关的信息,所以即使我可能已经克服了这一障碍,我也会受到鼓励来提供帮助。

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
于 2010-10-26T17:07:25.307 回答