Как да създадете валидиране на диапазон от списък с помощта на Android Google Spreadsheet API

Създавам приложение за Android, което създава нова електронна таблица в Google Drive и вмъква някои данни вътре. Понастоящем мога да вмъкна безплатен текст и формули, но трябва да добавя някои специфични проверки и по-специално падащ списък с предварително зададени стойности.

Очакваният резултат трябва да бъде нещо подобно: Падащо изображение

Използвам този код:

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 програмно, а не от потребителския интерфейс.

Благодаря ти.


person kirilv    schedule 05.12.2014    source източник
comment
Можете ли да преформатирате кода си? Изглежда, че for и if не са затворени.   -  person A.L    schedule 05.12.2014
comment
Търся код за създаване на електронна таблица от приложение за Android, можете ли да споделите своя код за създаване на електронна таблица.   -  person Rakki s    schedule 05.02.2015


Отговори (2)


requireValueInList(стойности, showDropdown)

Можете да го направите със Google Apps Script, можете да извикате google apps скрипт от сървър, но няма начин да го направите с (gdata) spreadsheet-api.

От документи 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);
person eddyparkinson    schedule 07.12.2014
comment
Благодаря много! Изобщо не знаех за съществуването на Google Apps Script. Спестихте ми много време. Определено ще пробвам с Google Apps Script. Просто не ми харесва колко объркано Google направи всичко, смесвайки API наоколо... - person kirilv; 08.12.2014
comment
Скриптът на Google Apps е JavaScript, така че синтаксисът и вградените функции са JavaScript. - person eddyparkinson; 08.12.2014
comment
Склонен съм да използвам ethercalc тези дни, той е с отворен код и може да направи много от това, което могат да направят google sheets. ethercalc.org - има формули за падащи списъци и поле за предложения. - person eddyparkinson; 06.10.2016

Apps Script е предназначен основно за автоматизация на работния процес върху Google Apps. И няма лесен начин как да го свържете с клиенти, но има начин. Зависи какви са вашите изисквания и кой ще използва приложението.

Интересувам се повече от интеграцията на Android с Google Spreadsheets. Очаквах, че API на Drive може да се справи със създаването и модифицирането на Google Spreadsheets. Но изглежда, че API на Google Spreadsheets е единственият начин.

person jogo    schedule 08.12.2014
comment
Всъщност може да създава и променя електронни таблици, но със сериозни ограничения. Например не можете да задавате цветове на фона, стилове на шрифтове, проверки на списъци и т.н. - person kirilv; 08.12.2014
comment
С Google Apps Script можете да правите всички тези неща. Проверете уеб услугите developers.google.com/apps-script/guides/html По принцип можете да изложите функционалността на скрипта през уеб услугата и например да комуникирате с нея в JSON. Изпратете JSON данни от Android клиент и услугата ще направи необходимите неща в Google Spreadsheets. Но както казах, зависи какъв е сценарият на използване, тъй като всички услуги на Google Приложения имат квоти и ограничения: developers.google.com/apps-script/guides/services/quotas - person jogo; 09.12.2014