2010-10-26 31 views
0

我正在嘗試編寫與Google Spreadsheets交談的代碼。我們在我們的一端進行了一系列處理,然後將數據傳遞給我們的客戶到這個電子表格中,並且我想將其自動化。這似乎應該很容易。如何使用Google.GData.Client.AtomLinkCollection.FindService方法獲取Google Spreadsheet中的工作表列表?

this page,谷歌表示,「鑑於你已經檢索到的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似乎並不存在。至少,如果我把它衝入瀏覽器,我找不到服務器。但是,我再也不知道它在做什麼。

那麼,有什麼想法?任何人都有VB代碼讀取Google Spreadsheets並有時間指導新手?我驚訝地發現,基本上有沒有有用的示例代碼在網上浮動。

感謝您的閱讀!

回答

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 
相關問題