【问题标题】:Convert ods to Google sheets将 ods 转换为 Google 表格
【发布时间】:2021-03-21 23:40:07
【问题描述】:

我正在尝试将 ods 文件转换为 google 表格文件格式。但是,如果文件有点大(~ 2mb 到 3mb),它会开始多次出现以下问题

GoogleJsonResponseException:对 drive.files.insert 的 API 调用因内部错误而失败

我的代码使用 try catcth 继续尝试转换。它可以在多次尝试后转换,或者它甚至不转换

var ssOrige = DriveApp.getFileById(fileId)
var ssOrigeBlob = ssOrige.getBlob()
var ssName = ssOrige.getName()

var newFile = {
    title : ssName.split('.')[0], 
    parents: [{id: folderDestinationId}]
  }
var ssDestination = null
while(!ssDestination) {
  try {
   // Cria cópia do arquivo como gSheet
   ssDestination = Drive.Files.insert(newFile, ssOrigeBlob, {convert: true})
  } catch (e) {
   Logger.log(e)
 }
}

小文件也有同样的问题,但它们往往会更容易、更快地转换

我在驱动器上的一个文件夹中有一些 ods 文件。我通过 ID 获取 ods 文件并尝试将其转换为 google 表格格式。我使用 Google App Script 来获取文件并尝试进行转换。所以,我拿了一个已经在谷歌驱动器中的 ods 文件并尝试将其转换并保存在驱动器中

【问题讨论】:

  • 为了测试和复制你的情况,你能提供一个样本ods file吗?
  • 添加到@Tanaike 请求请尝试解释您到底在做什么。这是在 node.js 中执行的吗?你是用 js 从浏览器应用程序中获取文件吗?
  • @Raserhin 我在驱动器上的文件夹中有一些 ods 文件。我通过 ID 获取 ods 文件并尝试将其转换为 google 表格格式。我使用 Google App Script 来获取文件并尝试进行转换。所以,我拿了一个已经在谷歌驱动器中的 ods 文件,并尝试将其转换并保存在驱动器中

标签: javascript google-apps-script google-sheets ods


【解决方案1】:

不要使用Drive API v2,而是尝试使用Drive API v3

查看Files.create 和上传新Google Docs types 的部分。

这段代码对我来说适用于不同大小的多个文件:

function myFunction() {
  let id = "<YOUR ODS FILE ID>";
  let file = DriveApp.getFileById(id);

  let fileBlob = file.getBlob();


  newFile = {
    name: "New File",
    mimeType: "application/vnd.google-apps.spreadsheet"
  }

  try{
    Drive.Files.create(newFile, fileBlob);
  }catch(e){
    Logger.log("Error");
    Logger.log(e);
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 2022-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多