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

Google drive api 如何以编程方式创建包含内容的Google Docs电子表格?,google-drive-api,google-sheets,google-docs,google-docs-api,google-spreadsheet-api,Google Drive Api,Google Sheets,Google Docs,Google Docs Api,Google Spreadsheet Api,我发现了多个StackOverflow问题,涉及如何使用或旧API创建或编辑Google Doc电子表格。然而,这个电子表格API似乎是“gdata”库的一部分,据我所知,它是不推荐的 演示如何使用驱动器API创建空的电子表格,该API看起来更为流行。但是,从该API的文档和示例来看,它似乎只允许您使用电子表格MIME类型创建新的空文件。我还没有找到任何用于创建包含实际内容(即行、列、工作表等)的电子表格的功能 创建新的Google Doc电子表格并用内容填充它的当前流程是什么?驱动器API是否

我发现了多个StackOverflow问题,涉及如何使用或旧API创建或编辑Google Doc电子表格。然而,这个电子表格API似乎是“gdata”库的一部分,据我所知,它是不推荐的

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


创建新的Google Doc电子表格并用内容填充它的当前流程是什么?驱动器API是否具有我不了解的功能?“gdata”库(或者至少是它的电子表格API部分)到底还没有完全被弃用吗?是否有第三种方法我完全错过了?我正在使用Java代码,尽管我确信任何Python API都会有一个Java等价物。

以项目符号形式回答

  • 只有旧的docslistapi被弃用了。由于没有替代品,电子表格API仍然有效
  • gdatalibs可能不再受支持,但直接使用电子表格API可能会更好
  • 驱动器API只涉及整个文件级别的操作
  • 您可以使用驱动器API创建一个填充的电子表格,方法是上传一个可以转换为Google电子表格格式的文件,例如MS Excel
  • 请注意,电子表格API(可能还有驱动器API)还不支持新的(2013年底)电子表格格式

谷歌应用程序脚本还将创建电子表格并允许您添加数据。 看见 它可以做的比GDataAPI更多,即谷歌应用程序脚本可以设置单元格字体/颜色等

但取决于你的需要,GData的风格很低,所以我发现它更快。 有一个简单的google GData演示CellDemo.java。
它展示了Gdata电子表格API功能。

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

1) Gdata仍然受到支持。2) 要回答原始问题,请使用电子表格单元格提要写入数据。如果它是一个表,则使用单元格提要来写入标题,然后使用行提要来写入行。Drive api还允许制作电子表格的副本,因此您可以从模板开始。谢谢。令人惊讶的是,driveAPI()提供了两个基于Maven的“快速启动”项目框架。。。然而,Maven Central或任何其他公共回购协议上都没有电子表格API。它看起来一点也没有专业化。在我的职业生涯中,我从未在一个更令人沮丧的平台上工作过。谷歌提供了很多非常好的工具,但没有一个连贯的结构或方向。感觉更像是学术界,而不是企业界…@StevePerkins欢迎使用“驱动力”进行开发:-)一点历史帮助。谷歌意识到他们的API乱七八糟,因此在2012年推出了一个基于OAuth/Cloud Console/REST/JSON等的新API基础设施。随着每一个旧API都被一个新的等效API所取代,它被弃用。一些API(如电子表格)尚未被替换。让初学者(我们都去过)困惑的是,旧文档(谷歌和第三方)并没有被撤销,而且由于其年代久远,在搜索结果中的排名往往很高。你不能从api调用谷歌应用程序脚本命令。api只提供一个execute命令,该命令可能运行以前存储在文件中的脚本。@mvbentes不确定您的意思。你想通过API修改代码吗?我认为OP的意思是从GoogleDocs环境之外创建和填充一个表,因此是API。这正是我所需要的。我尝试了应用程序脚本的方法,但是,正如它在概述中所说:“应用程序脚本可以让你用谷歌做更多的事情。一切都在云中的JavaScript平台上进行。”[我点击回车键获得一条新行。得出结论]不能直接从外部运行其命令,因为它不是API。它提供的是一个执行API,它具有单个命令
运行
,允许您在“云”中间接运行以前存储的脚本。您可以将参数传递给“单个命令”,但如果您有大量数据,这不是一个好的解决方案。电子表格API,甚至ethercalc会更好。(ethercalc有一些类似谷歌文档的功能,但是开源的,ethercalc.org)
String[] SCOPES = { SheetsScopes.SPREADSHEETS};
    credential = GoogleAccountCredential.usingOAuth2(
            getApplicationContext(), Arrays.asList(SCOPES))
            .setBackOff(new ExponentialBackOff());