使用Google Script复制“文件”>的行为Google电子表格中的“下载为...”

时间:2013-07-15 15:14:03

标签: google-apps-script google-sheets

我正在寻找一种方法:

a)替换“档案”> “下载为... ”> Google电子表格中的“ Microsoft Excel(.xlsx)”,当我点击“Microsoft Excel(.xlsx)”时,它会询问我要保存的文件的名称(即:像典型的“另存为... ”菜单条目一样。

b)如果无法替换标准菜单条目,我希望至少在另一个菜单中添加另一个菜单条目,其行为如上所述。

即使我无法编写允许我替换现有菜单条目的脚本,我也设法编写了一个添加额外菜单的脚本。

是否可以完成“a”?


现在的另一个问题是我似乎无法找到一种方法复制“文件”的行为> “下载为...”> “Microsoft Excel(.xlsx)”。

我找到了其他帖子,其中描述了如何编写Google脚本以执行类似的操作(例如:以特定格式在 Google云端硬盘中创建电子表格的备份,或发送它通过 GMail 到特定地址。)

实际上,在阅读“Can I download file from URL link generated by google apps script”后,我甚至不确定是否可能。

  

请注意,由于您无法访问自己,因此无法下载   应用程序脚本中的PC资源(例如文件系统)。该文件仍然是   在“云”中...在这种情况下,它已经从网站上复制了   已进入Google云端硬盘。但是,如果您正在运行云端硬盘应用,   该文件现在将同步到您的PC。

有没有办法做到这一点?


提前致谢。

1 个答案:

答案 0 :(得分:1)

我从电子表格下载文件的唯一方法是编写完全独立的脚本,该脚本按文档ID访问我的原始电子表格,生成文件并按如下方式下载:

function doGet(){
    var outputDocument = DocumentApp.create('Some csv'); 
    var content = getCsv();
    var textContent = ContentService.createTextOutput(content);
    textContent.setMimeType(ContentService.MimeType.CSV);
    textContent.downloadAsFile("4NocniMaraton.csv");
    return textContent;
}

然后我必须发布应用程序并获取它的链接。我将这个链接放在原始电子表格中的一张表格中,我将其用作数据下载链接。除此之外,我没有找到解决安全问题的方法。