Я использую 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;
}
Эта же проблема, похоже, существует в Java... Как упоминалось в ответе Фараза, вы можете использовать язык запросов Google, чтобы делать запросы, похожие на базы данных, на электронные таблицы Google со следующими оговорками:
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") после RedirectRequiredExceptionapplication/javascript
, который не распознается API (насколько я могу судить), sooo... Feed
/Entry
типов (хак с Entry
не будет фактически соответствовать любой ячейке в листе) вместе с некоторым кодом, чтобы вырезать охватывающую JavaScripttqx=out:<output type>
. Форматы, которые я смог получить, out:html
и out:csv
. out:tsv-excel
также документирован, но я не мог заставить его работать. Ни один из этих форматов не распознается API...Я бы предпочел, чтобы официальное решение, поддерживающее Google (если оно есть), само кодировало все это, поэтому я жду более полного ответа. Однако, если ваш собственный каток - единственный способ, пожалуйста, укажите, есть ли правильный способ сделать это.
Google предлагает механизм запросов, но не тот способ, которым он работает для SQL.
Посмотрите на это: Справочник по языку Google Query