Как использовать метод Google.GData.Client.AtomLinkCollection.FindService, чтобы получить список рабочих таблиц в таблице Google? - PullRequest
0 голосов
/ 26 октября 2010

Я пытаюсь написать код, который обращается к таблицам 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. Этот URI schemas.google.com, похоже, не активен. По крайней мере, если я вставлю его в браузер, я получу сервер не найден. Но опять же, я точно не знаю, что он пытается сделать.

Итак, есть мысли? У кого-нибудь есть код VB, который читает таблицы Google, и время, чтобы обучить новичка? Я удивлен, обнаружив, что по сути нет полезного примера кода, плавающего в сети.

Спасибо за чтение!

1 Ответ

1 голос
/ 26 октября 2010

Итак, конечно , сразу после того, как я опубликовал это, я нашел некоторое вдохновение над здесь . Ручная итерация по коллекциям работает просто отлично, даже если это не предпочтительный способ сделать это. Я по-прежнему стремлюсь услышать информацию от других, связанную с этим, поэтому чувствую себя вынужденным помочь, даже если я преодолел это препятствие.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...