Как выполнить структурированный поиск в Google Sheets API, который возвращает скалярные значения в C #

1

Я использую API Google Таблиц из С#. Как вы создаете структурированные запросы, возвращающие скалярные значения с помощью API С#?

Код, который я просматриваю, приведен ниже (хотя я также пытался использовать SpreadsheetQuery (где я могу успешно выполнять запросы WHERE). С помощью этого кода я всегда получаю нулевые записи.

      public int MaxId(string tableName)
                {
    //Get the Worksheet
                    var worksheet = GetTable(tableName);
                    AtomLink listFeedLink = worksheet.Links.FindService(GDataSpreadsheetsNameTable.ListRel, null);
                    ListQuery query = new ListQuery(listFeedLink.HRef.ToString());
//This line doesn't seem to get processed correctly.

                    query.Query = "select max(id)";
                    ListFeed feed = this._spreadsheetHelper._service.Query(query);
                    var entriesC = feed.Entries.Count;
                    //TODO 
                    return -1;
        }
Теги:
google-spreadsheet

2 ответа

1

Эта же проблема, похоже, существует в Java... Как упоминалось в ответе Фараза, вы можете использовать язык запросов Google, чтобы делать запросы, похожие на базы данных, на электронные таблицы Google со следующими оговорками:

  • URL-адреса больше не являются spreadsheets.google.com/a/google.com/tq?key=<document key>&tq=<query>, но https://docs.google.com/spreadsheets/d/<document key>/gviz/tq?tq=<query>
  • У меня были проблемы с IllegalArgumentException("Trying to set foreign cookie") при использовании новых URL-адресов - см. Соответствующий вопрос API сайтов Google, IllegalArgumentException ("Попытка установить чужой cookie") после RedirectRequiredException
  • ответ json встроен в javascript с типом MIME, установленным в application/javascript, который не распознается API (насколько я могу судить), sooo...
    • вам необходимо создать новый тип и добавить его в объект службы
    • создать парсер для преобразования ответа на API признал Feed/Entry типов (хак с Entry не будет фактически соответствовать любой ячейке в листе) вместе с некоторым кодом, чтобы вырезать охватывающую JavaScript
    • также обратите внимание, что другие форматы ответов доступны с использованием параметра tqx=out:<output type>. Форматы, которые я смог получить, out:html и out:csv. out:tsv-excel также документирован, но я не мог заставить его работать. Ни один из этих форматов не распознается API...

Я бы предпочел, чтобы официальное решение, поддерживающее Google (если оно есть), само кодировало все это, поэтому я жду более полного ответа. Однако, если ваш собственный каток - единственный способ, пожалуйста, укажите, есть ли правильный способ сделать это.

0

Google предлагает механизм запросов, но не тот способ, которым он работает для SQL.

Посмотрите на это: Справочник по языку Google Query

Ещё вопросы

Сообщество Overcoder
Наверх
Меню