Как программно создать электронную таблицу Google Docs с содержимым?


Я нашел несколько вопросов StackOverflow, касающихся того, как создавать или редактировать электронные таблицы Google Doc с помощью Google Spreadsheets API или более старых API. однако этот API Spreadsheets, похоже, является частью библиотеки "gdata", которая, насколько я понимаю, устарела.

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

Каков текущий процесс создания новой электронной таблицы Google Doc и заполнения ее содержимым? Есть ли у API диска функциональность, которую я не понимаю? Не является ли библиотека" gdata " (или, по крайней мере, ее API-часть Spreadsheets) полностью устаревшей? Есть ли такие третий подход, который я вообще пропустил? Я работаю с Java-кодом, насколько это имеет значение, хотя я уверен, что любой Python API будет иметь эквивалент Java.

3 8

3 ответа:

Ответ в виде пули ...

  • устаревшим является только старый API docslist. API электронных таблиц все еще жив и работает, так как нет замены
  • библиотеки gdata, возможно, больше не поддерживаются, но вы, вероятно, будете лучше обслуживаться с помощью API электронных таблиц напрямую в любом случае
  • API диска имеет дело только с операциями на уровне всего файла
  • Вы можете создать заполненную электронную таблицу с помощью API диска, загрузив файл в формат, который можно преобразовать в электронную таблицу Google, например. MS Excel
  • имейте в виду, что API электронных таблиц (и, возможно, API дисков) еще не поддерживают новый (конец 2013 года) формат электронных таблиц

Со ссылкой на новую электронную таблицу API v4

У меня есть лучший и простой метод:

Шаг 1

Создайте класс AsyncTask, передайте ему учетные данные GoogleAccountCredential.

Шаг 2

Используйте API для создания новой электронной таблицы.

Код

 private class MakeRequestTask extends AsyncTask<Void, Void, Void> {
    private com.google.api.services.sheets.v4.Sheets mService = null;

    // The constructor
    MakeRequestTask(GoogleAccountCredential credential) {
        HttpTransport transport = AndroidHttp.newCompatibleTransport();
        JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
        mService = new com.google.api.services.sheets.v4.Sheets.Builder(
                transport, jsonFactory, credential)
                .setApplicationName("Android spreadsheet client")
                .build();
    }                    

    protected void doInBackground(Void... params) {

        // function to create the spreadsheet
        creadSpreadSheet();
    }

    // creates a new spreadsheet
    private void creadSpreadSheet() throws IOException{
        com.google.api.services.sheets.v4.model.Spreadsheet mSpreadsheet, newSpreadSheet;
        mSpreadsheet = new Spreadsheet();
        SpreadsheetProperties spreadsheetProperties = new SpreadsheetProperties();
        spreadsheetProperties.setTitle("Demo SpreadSheet");// name of your spreadsheet
        mSpreadsheet = mSpreadsheet.setProperties(spreadsheetProperties);


        newSpreadSheet = mService.spreadsheets()
                .create(mSpreadsheet)
                .execute();

        // this 'newSpreadsheet' is ready to use for write/read operation.
    }

}

Примечание: Не забудь положить листы бумаги.Область действия электронных таблиц в "учетных данных" в onCreate ().

String[] SCOPES = { SheetsScopes.SPREADSHEETS};
    credential = GoogleAccountCredential.usingOAuth2(
            getApplicationContext(), Arrays.asList(SCOPES))
            .setBackOff(new ExponentialBackOff());

Google-apps-script также создает электронные таблицы и позволяет добавлять данные. См. https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app Он может делать больше, чем GData api, то есть google-apps-script может устанавливать шрифты/цвета ячеек и т. д.

Но в зависимости от ваших потребностей, GData имеет низкий уровень стиля, и поэтому я нахожу его быстрее. Существует простая демонстрация Google GData CellDemo.Ява. http://gdata-java-client.googlecode.com/svn-history/r51/trunk/java/sample/spreadsheet/cell/CellDemo.java Это показать таблицы функций API для антивируса Avast.