从HTML前端制作一个谷歌脚本运行



我有一个脚本,它将向我们的服务器运行HTTP请求,并带来最新的订单。

我们希望能够根据请求运行脚本,但也能够将其作为插件安装到我们不同商店的不同工作表中

应用程序的前端由这个html 生成

<link href="https://ssl.gstatic.com/docs/script/css/add-ons.css"
rel="stylesheet">

<div class="sidebar">

<div class="block form-group">

<button class="blue" id="load_orders">Import Order Data</button>
</div>

<div id='orders'></div>
</div>

<script>
$(function onSuccess(load_orders) {


});
withSuccessHandler(onSuccess).importcogs();
});
</script>

然后在.gs上,我有一个脚本来显示应用程序(在我们部署它之前(和导入订单脚本

function onInstall() {
onOpen();
}

function onOpen() {
SpreadsheetApp.getUi()
.createAddonMenu() // Add a new option in the Google Docs Add-ons Menu
.addItem("Import Order Data", "showSidebar")
.addToUi();  // Run the showSidebar function when someone clicks the menu
}

function showSidebar() {
var html = HtmlService.createTemplateFromFile("Front")
.evaluate()
.setTitle("Import Order - Search"); // The title shows in the sidebar
SpreadsheetApp.getUi().showSidebar(html);
}

function importcogs() {
Logger.log("import begin");
var ss = SpreadsheetApp.getActiveSpreadsheet();
var urlsheet = ss.getSheetByName("GetInfo");
var request = urlsheet.getRange(5,2).getValue();
Logger.log(request);
var response = UrlFetchApp.fetch(request);
Logger.log("download data finish");
Logger.log(response.getContentText());

var sheet = ss.getSheetByName("Data");
var obj = JSON.parse(response);
let vs = obj.data.map(o => Object.values(o));//data
vs.unshift(Object.keys(obj.data[0]));//add header
sheet.getRange(1,1,vs.length, vs[0].length).setValues(vs);//output to spreadsheet

}  

我无法将";进口订单"按钮到脚本。

正如Cooper在上面的评论中所说,它不是一个独立的函数:

示例用法:

google.script.run.withSuccessHandler(onSuccess).importcogs();

这将反过来运行importcogs函数,并在函数成功完成时触发onSuccess函数。onSuccess的参数将是名为importcogs的函数的返回(如果有(。

相关内容

最新更新