在独立脚本中与activeSheet,activeCell交互

时间:2018-02-02 15:56:30

标签: google-apps-script

我创建了一个google工作表,逐行存储信息,我将其作为模板以不同的电子邮件形式发送出去。我想将这份文件的副本提供给我的同事,但是从版本控制的角度来看,我可能会更好地将脚本部署为附加组件,这样他们就可以了单独安装,但我保持对代码的集中控制。但是,我的代码使用了大量的ActiveSpreadsheet()和ActiveSheet()以及activeCell()函数,这些函数显然只有容器绑定的脚本可以使用。

任何人都有关于如何在独立脚本中替换以下行的任何建议?还有任何关于我将脚本更改为独立脚本以作为附加组件部署的想法的评论将不胜感激!

var tooltip = d3.select("body").append("div")
    .attr("class", "tooltip")
    .style("opacity", 0);

svg.append("g")
.selectAll("scatter-dots")
  .data(myData)  
  .enter().append("svg:circle")
  .attr("cx", function (d,i) { return xScale(myData[i]); } ) 
      .attr("cy", function (d) { return yScale(d); } ) 
      .attr("r", 3)
      .style("opacity", 0.8)
      .on("mouseover", function(d) {
       tooltip.transition()
         .duration(200)
         .style("opacity", .9);
       tooltip.html(d) 
         .style("left", (d3.event.pageX) + "px")
         .style("top", (d3.event.pageY - 28) + "px");
       })
     .on("mouseout", function(d) {
       tooltip.transition()
         .duration(500)
         .style("opacity", 0);
       });

1 个答案:

答案 0 :(得分:1)

尝试使用此代码而不是上述代码:

var sheet = SpreadsheetApp.openById("your-spreadsheet-id").getSheetByName("your-table-name");
var scriptRow = sheet.getActiveCell().getRow(); 
var tst1 = sheet.toast('Draft create failed');

很难说附加组件是否合适。取决于脚本正在进行的确切工作:您可以将其作为附加组件,Web应用程序或API发布。