首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google-apps-script的Google-cloud-platform API设置,该脚本通过Drive.Files.insert()函数将excel文件转换为电子表格

google-apps-script的Google-cloud-platform API设置,该脚本通过Drive.Files.insert()函数将excel文件转换为电子表格
EN

Stack Overflow用户
提问于 2020-04-09 15:20:02
回答 1查看 48关注 0票数 0

我有一个谷歌表格,收集用户的excel文件,并上传到驱动器。据我所知,我应该从excel文件转移到电子表格来打开和获取数据。因此,我使用Drive.Files.insert()来转换文件,这需要对脚本进行额外的审批。我在Google script上的Resources > Advanced Google Services下启用了google Drive API,并将此google script链接到一个google云项目。Google Drive API在谷歌云上也启用了"OAuth 2.0客户端ID“。但我的脚本仍然无法通过谷歌登录过程,只返回一个带有谷歌登录页面的word文件。

脚本:

代码语言:javascript
复制
var Blob01 = UrlFetchApp.fetch(thelink).getBlob();

var fileInfo = {
  title: "test1",
  mimeType: MimeType.GOOGLE_SHEETS,
  "parents": [{
    'id': FolderId
  }],
};

Drive.Files.insert(fileInfo, Blob01, {convert: true});

OAuth设置: Google APIs驱动器的范围../auth/ >>和../auth/drive。文件凭据: OAuth客户端ID >>网络应用程序google drive api已启用,并将凭据添加为"Google drive api“、"web browser”和"User data“

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2020-04-09 16:21:53

当您使用UrlFetchApp从驱动器获取文件时,它将需要授权。这就是为什么你会得到一个带有谷歌登录页面的word文件。

相反,尝试使用DriveApp从Google Drive目录中获取文件。例如,您可以使用.getFilesByName()函数。

下面是您的用例示例:

代码语言:javascript
复制
 var blob = DriveApp.getFilesByName("Excel.xlsx").next().getBlob(); // Assuming this file name is unique in your google drive
 var file_ops = { 
    title: "test1",
    mimeType: MimeType.GOOGLE_SHEETS,
    "parents": [
       {
          "id": FolderId
       }
    ]
 };
 Drive.Files.insert(file_ops, blob, {"convert": true});

参考文献:

DriveApp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61115889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档