我撰寫此代碼是為了在 Google 作業表中設定一個自定義選單,以將一個 TXT 檔案下載到本地計算機磁盤,其中包含從某個單元格獲取的一些資料。在第一階段,我只是嘗試下載“某物”(下面代碼中的“測驗 123”),但我從服務器收到一個紅色的“稍后嘗試”錯誤。
在這里,我在作業表中添加選單
function onOpen() {
SpreadsheetApp.getUi().createMenu('Export')
.addItem('Download cycle for SD card', 'downloadAsFile')
.addToUi();
}
這里有附加到選單的功能的實作
function downloadAsFile(){
var output = ContentService.createTextOutput()
.setMimeType(ContentService.MimeType.TEXT)
.setContent("test 123")
.downloadAsFile("Cycle_JSON.txt");
return output
}
如果我在函式 doGet() 中使用第二個片段并從瀏覽器頁面啟動腳本,它可以正常作業,但這不是它的預期作業方式。
如果不是為了簡單起見,我寧愿避免通過 Google Drive,但如果沒有其他機會,這是可以接受的。
有什么建議嗎?
uj5u.com熱心網友回復:
試試這個自動工具
function downloadAsFile() {
var content = 'test 123'
var html = HtmlService.createHtmlOutput(`
<html><body onl oad="document.getElementById('dwn-btn').click()">
<textarea id="text-val" rows="10" style="display:none;">${content}</textarea>
<input type="button" id="dwn-btn" value="Download text file" style="display:none;"/>
<script>
window.close = function(){window.setTimeout(function(){google.script.host.close()},100)}
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
document.getElementById("dwn-btn").addEventListener("click", function(){
var text = document.getElementById("text-val").value;
var filename = "Cycle_JSON.txt";
download(filename, text);
close();
}, false);
</script>
</body></html>
`)
.setWidth(250).setHeight(100);
SpreadsheetApp.getUi().showModalDialog(html, "Download file ...");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/493935.html
下一篇:在復選框為真時在單元格中插入日期