Google apps script 使用Google Apps脚本下载生成的XML
我有一个GoogleApps脚本绑定到一个将电子表格转换为XML的电子表格 任务完成后,是否有办法将生成的XML文件下载到用户计算机上 我希望它的行为就像电子表格的“文件>下载到格式”功能一样Google apps script 使用Google Apps脚本下载生成的XML,google-apps-script,Google Apps Script,我有一个GoogleApps脚本绑定到一个将电子表格转换为XML的电子表格 任务完成后,是否有办法将生成的XML文件下载到用户计算机上 我希望它的行为就像电子表格的“文件>下载到格式”功能一样 谢谢这个示例脚本怎么样?请把这当作几个答案之一 为了使用此示例,首先,请设置生成的XML文件的文件ID。例如,为此,考虑采用以下方法 当用户单击下载按钮时,它将创建XML文件并检索文件ID 创建XML文件时,使用PropertiesService保存XML文件的文件ID,当用户单击下载按钮时,它将检索文件
谢谢这个示例脚本怎么样?请把这当作几个答案之一 为了使用此示例,首先,请设置生成的XML文件的文件ID。例如,为此,考虑采用以下方法
- 您还可以直接运行
onOpen()
download(obj)
- 这样,用户可以下载文件ID的文件
函数getUrl(){
google.script.run.withSuccessHandler(下载).getDownloadUrl();
}
功能下载(obj){
var d=document.createElement('a');
d、 href=obj.url;
d、 下载=obj.filename;
d、 单击();
}
注:
这个示例脚本非常简单。因此,请针对您的环境修改此选项
如果我误解了你的问题,很抱歉。你不是真的要求将文件上传(推送)到另一台计算机吗?请你澄清一下。如果是这种情况(推送到另一台计算机):没有HTTPS端点就不能将文件推送到。否则,如果是从目标计算机(pull)下载,则需要在目标设备上进行定时处理。至少在过去我就是这样解决这个问题的。不,我只是想把生成的XML文件下载(拉)到当前运行电子表格的计算机上,由计算机执行“导出为XML”的操作,效果几乎很好。我在驱动器中生成了该文件,然后浏览器尝试自动下载该文件。但是,即使我指定了
file.setSharing(DriveApp.Access.anywhere,DriveApp.Permission.VIEW)
并且我可以在驱动程序中读取文件,下载仍会失败,并显示“需要自动化”。你知道授权有什么问题吗?没关系,它是有效的。在downloadUrl中,e=download&gd=true
在开始时不存在,因此我从替换模式中删除了?
,我工作得很好。非常感谢!:)@我很高兴能帮助你。也谢谢你。
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('download')
.addItem('download files', 'dialog')
.addToUi();
}
function dialog() {
var html = HtmlService.createHtmlOutputFromFile('download');
SpreadsheetApp.getUi().showModalDialog(html, 'Sample dialog');
}
function getDownloadUrl() {
var id = "### file id ###"; // Please put file ID of your generated XLM file.
var file = DriveApp.getFileById(id);
return {
url: file.getDownloadUrl().replace("?e=download&gd=true",""),
filename: file.getName()
};
}
<input type="button" value="download" onclick="getUrl()" />
<script>
function getUrl() {
google.script.run.withSuccessHandler(download).getDownloadUrl();
}
function download(obj) {
var d = document.createElement('a');
d.href = obj.url;
d.download = obj.filename;
d.click();
}
</script>