Как программно создать электронную таблицу 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 ответа:
Ответ в виде пули ...
- устаревшим является только старый 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.