我正在尝试编写与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命名法的工作表吗?那种东西。但我发现可能引起我的问题的一些事情:
那么,有什么想法吗?任何人都有VB代码,可以阅读Google Spreadsheets并有时间指导新手吗?我很惊讶地发现网上有基本 no 的有用示例代码。
感谢阅读!
答案 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