google-drive-api - 如何以编程方式创建包含内容的 Google Docs 电子表格?

标签 google-drive-api google-sheets google-docs google-docs-api google-spreadsheet-api

我发现了多个关于如何使用 Google Spreadsheets API 创建或编辑 Google Doc 电子表格的 StackOverflow 问题。 ,或更旧的 API。但是,这个电子表格 API 似乎是“gdata”库的一部分,据我所知,它已被弃用。

Newer StackOverflow answers展示如何使用 Drive API 创建一个空电子表格,它看起来更流行。但是,从查看该 API 的文档和示例来看,它似乎只允许您使用电子表格 MIME 类型创建新的 EMPTY 文件。我还没有找到任何用于创建包含实际内容(即行、列、工作表等)的电子表格的功能。

创建新的 Google Doc 电子表格并为其填充内容的当前流程是什么? Drive API 是否具有我不理解的功能? “gdata”库(或至少它的电子表格 API 部分)毕竟没有被完全弃用吗?有没有我完全错过的第三种方法?我正在使用 Java 代码,这在一定程度上很重要,尽管我确信任何 Python API 都会有一个 Java 等价物。

最佳答案

引用新的电子表格 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.
    }

}

注意:
不要忘记将“SheetsScopes.SPREADSHEETS”范围放在 onCreate() 的“凭据”中。
String[] SCOPES = { SheetsScopes.SPREADSHEETS};
    credential = GoogleAccountCredential.usingOAuth2(
            getApplicationContext(), Arrays.asList(SCOPES))
            .setBackOff(new ExponentialBackOff());

关于google-drive-api - 如何以编程方式创建包含内容的 Google Docs 电子表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21217995/

相关文章:

php - 谷歌 PHP API : "invalid response from api server"

javascript - 用点替换逗号 - Google 表格找不到替换功能

xml - XPATH:使用IMPORTXML计数字符串的出现

google-docs - 更新谷歌文档中标题的链接

google-apps-script - 如何转让 Google 电子表格的所有权并成为查看者

csv - 谷歌发布的 csv 的限制是什么

android - Lucky Patcher 会放弃它修补的应用程序并且 Google API 会验证 SHA1 吗?

google-drive-api - 在不知道用户密码的情况下将数据保存到 dropbox/google docs

sql - 根据 2 个列表生成项目列表?

javascript - 在 Google 文档中的特定位置插入文本