Как создать проверку диапазона списков с помощью Android Google Spreadsheet API
Я создаю приложение для android, которое создает новую электронную таблицу на Google Диске и вставляет в нее некоторые данные. В настоящее время я могу вставлять свободный текст и формулы, но мне нужно добавить некоторые конкретные проверки и, в частности, выпадающий список с предопределенными значениями.
Ожидаемый результат должен быть примерно таким:
Я использую этот код:
SpreadsheetFeed feed = spreadsheetService.getFeed(
FeedURLFactory.getDefault()
.getSpreadsheetsFeedUrl(),
SpreadsheetFeed.class);
// Creating the list of spreasheets in GDrive
List<com.google.gdata.data.spreadsheet.SpreadsheetEntry> spreadsheets = feed.getEntries();
// parsing trough the feed entries
for (int i = 0; i < spreadsheets.size(); i++) {
com.google.gdata.data.spreadsheet.SpreadsheetEntry e = (com.google.gdata.data.spreadsheet.SpreadsheetEntry) spreadsheets.get(i);
// IF WE LOCATE THE FILE BASED ON THE FILENAME
if( e.getTitle().getPlainText().equals(Constants.FILE_PREFIX + mFileName)) {
Log.d(TAG, "ENTRY: " + e.getTitle().getPlainText());
URL worksheetFeedUrl = e.getWorksheetFeedUrl();
Log.d(TAG, "worksheetFeedUrl: " + worksheetFeedUrl);
// The first time this feed is used to create the new worksheet
WorksheetFeed worksheetFeed = spreadsheetService.getFeed (worksheetFeedUrl, WorksheetFeed.class);
Log.d(TAG, "worksheetFeed OK !");
// Create the second worksheet
WorksheetEntry newWorksheet = new WorksheetEntry(15, 5);
newWorksheet.setTitle(new PlainTextConstruct("Sheet2"));
worksheetFeed.insert(newWorksheet);
// The second time this feed is used to get the worksheets
worksheetFeed = spreadsheetService.getFeed (worksheetFeedUrl, WorksheetFeed.class);
// Get the first worksheet and insert the titles
List <WorksheetEntry> worksheetEntrys = worksheetFeed.getEntries ();
WorksheetEntry sheet1 = worksheetEntrys.get(0);
WorksheetEntry sheet2 = worksheetEntrys.get(1);
URL sheet1CellFeedUrl = sheet1.getCellFeedUrl ();
CellFeed sheet1CellFeed = spreadsheetService.getFeed (sheet1CellFeedUrl, CellFeed.class);
sheet1CellFeed.insert (new CellEntry (1, 1, getResources().getString(R.string.cell_title_name)));
sheet1CellFeed.insert (new CellEntry (1, 2, getResources().getString(R.string.cell_title_description)));
sheet1CellFeed.insert (new CellEntry (3, 2, getResources().getString(R.string.some_string)));
sheet1CellFeed.insert (new CellEntry (13, 2, "=COUNTIF(Sheet1!F2:F,B3)"));
sheet1CellFeed.insert (new CellEntry (14, 2, "=B9 - TODAY()"));
break;
}
}
Мне нужен способ вставить этот список диапазонов критериев из API программно, а не из ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС.
Спасибо.
2 ответа:
RequireValueInList (values, showDropdown)
Вы можете сделать это с помощью скрипта Google Apps, Вы можете вызвать скрипт google apps с сервера, но нет способа сделать это с помощью (gdata) spreadsheet-api.
From docs requireValueInList
// Set the data validation for cell A1 to require "Yes" or "No", with no dropdown menu. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireValueInList(['Yes', 'No'], false).build(); cell.setDataValidation(rule);
Apps Script в первую очередь предназначен для автоматизации рабочего процесса поверх Google Apps. И нет простого способа, как связать его с клиентами, но есть способ. Зависит от того, каковы ваши требования и кто будет использовать приложение.
Меня больше интересует интеграция Android с Google Spreadsheets. Я ожидал, что Drive API может обрабатывать создание и модификацию электронных таблиц Google. Но, похоже, API Google Spreadsheets-это единственный путь.