【发布时间】:2020-01-29 00:35:01
【问题描述】:
我想使用 Google Apps 脚本在 Google Drive 上的特定文件夹中创建一个 Google Sheet。根据File类的documentation:
createFile(名称、内容、mimeType)
在当前文件夹中创建一个具有给定名称、内容和 MIME 类型的文件。如果内容大于 10MB,则引发异常。
// Create an HTML file with the content "Hello, world!" DriveApp.getRootFolder().createFile('New HTML File', '<b>Hello, world!</b>', MimeType.HTML);
并根据MimeTypedocumentation:
枚举 MimeType
提供对 MIME 类型声明的访问而无需显式键入字符串的枚举。期望将 MIME 类型呈现为字符串(例如,'image/png')的方法也接受以下任何值,只要该方法支持基础 MIME 类型。
没有提到 createFile 仅支持可用 MIME 类型的子集。该页面包含一个表,其中包含此 MIME 类型:
GOOGLE_SHEETS Enum Representation of MIME type for a Google Sheets file.
我的问题在于按照File 文档中的描述实现这种创建文件的方法。
var folder = DriveApp.createFolder('new folder');
var ss = folder.createFile('new sheet', '', MimeType.GOOGLE_SHEETS);
这会抛出一个错误,说明
无效参数:file.contentType(第 2 行,文件“代码”)
用字符串application/vnd.google-apps.spreadsheet 替换MimeType.GOOGLE_SHEETS 显然没有帮助。我知道this question,但接受的答案只是承认失败,并通过在SpreadsheetApp 中创建文件、复制并删除原始文件来使用常见的混乱解决方法。 This question 对同一问题有一个同样令人失望的公认答案,但 Google Docs 除外。 SpreadsheetApp 的解决方法很好,但我希望 3 年后有人知道如何正确使用 createFile。
【问题讨论】:
-
@Kos 感谢您的链接,但不幸的是没有,它仍然是一个草率的解决方法,没有解释为什么 Google 文档中的官方方法不起作用。
标签: google-apps-script google-sheets