Google Sheets Api:复制Google电子表格

Shy*_*ikh 3 javascript angularjs google-sheets-api

尝试复制整个电子表格,但我想没有api可以这样做。

基本上,我正在尝试执行以下操作:

  • 有一个电子表格,我想进行细微的复制。
  • 创建一个新的电子表格,将模板中的所有工作表一张一张地复制到新的电子表格中(电子表格副本本来会更有效)

可以正常创建新的电子表格,但是无法从电子表格复制表格。

尝试了2种方法:

角度:

$http.post("https://sheets.googleapis.com/v4/spreadsheets/"+fromSpreadsheetId+"/sheets/"+fromSheetId,
                            {headers: {
                        'Authorization': 'Bearer ' + this.oauthToken
                     }},
Run Code Online (Sandbox Code Playgroud)

给出以下错误:

对预检请求的响应未通过访问控制检查:否'Access-Control-Allow-Origin'

Google Sheets Api调用:

gapi.client.sheets.spreadsheets.sheets.copyTo({spreadsheetId: fromSpreadsheetId , sheetId: fromSheetId},{destinationSpreadsheetId: destinationSpreadsheetId});
Run Code Online (Sandbox Code Playgroud)

请求通过没有任何错误。但是,新创建的电子表格没有复制工作表。

Sam*_*lin 5

您可能要问一个专门针对CORS问题的单独问题,因为那是一个单独的问题。

关于“复制电子表格”,您有两个选择:

1)使用Drive API的files.copy方法。该fileId驱动器API中相当于spreadsheetId在表API。

2)不要使用您复制的“模板”电子表格。相反,请使用Sheet API的sheets.create方法。您可以使用sheets.get检索“模板” JSON,并可以在创建新电子表格之前进行必要的调整。

  • 我可以建议您删除或更新您的 #2 吗?您的 #1 解决方案是正确的,但是当我测试基于 JSON 的方法时,它遗漏了电子表格的几个重要特征,例如高级格式、嵌入图像等。您可以警告 #2 仅适用于简单的电子表格,或者将其删除. (2认同)
  • 是的。我想查看#2 的代码示例。这没有道理。 (2认同)