你可以在谷歌电子表格的自定义菜单菜单项tickable?(Can you make menu ite

2019-10-17 10:23发布

当添加菜单项来使用电子表格spreadsheet.addMenu()是有办法让他们tickable喜欢的项目视图>正常吗?

Answer 1:

如果你真的想这样做,也许你可以做一些笨重的像下面并调用updateMenu必要时添加复选标记。

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [ {name: "  item 1", functionName: "one"},
                      {name: "  item 2", functionName: "two"} ];
  ss.addMenu("myMenu", menuEntries);
}

function one() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.updateMenu("myMenu", [ {name: "✓ item 1", functionName: "one"},
                            {name: "  item 2", functionName: "two"} ]);
  // ... item 1 actions
}

function two() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.updateMenu("myMenu", [ {name: "  item 1", functionName: "one"},
                            {name: "✓ item 2", functionName: "two"} ]);
  // ... item 2 actions
}


Answer 2:

我试着用@KalyanReddy提供的答案,但遇到了一个问题,因为电子表格UI压缩空间和装饰菜单名称。 通过反复试验,我发现了一个变通。

下面是生成复选框,排列的菜单效用函数:

/**
 * Make a checkbox menu item. Returns a string with the original text aligned to
 * leave room for a check mark. (Dependent on font, compatible with default
 * font used in Google Spreadsheets as of May 2013. YMMV.)
 *
 * @param {String} name Original item name
 * @param {boolean} check True if menu item should have a check mark
 *
 * From an idea by Kalyan Reddy, http://stackoverflow.com/a/13452486/1677912
 */
function buildItemName( name, check ) {
  // Prepend with check+space, or EM Space
  return ( check ? "✓ " : "\u2003" ) + name;
}

为了真正使用这个,你应该写跟踪的状态,并通过调用buildItemName建立你的菜单项的单一功能,然后调用它与updateMenu()时的状态变化。



Answer 3:

最简洁的答案是不。

长(ER)的答案是,菜单项只能调用函数,所以没有使用它显示一个“国家”。 但是你能想象,通过修改文本值或通过改变颜色来显示,有些功能被称为使用某种类型的显示你想要显示的状态下,电子表格本身标题的。

我假设你的要求的最终目的是显示如果一个函数被调用或不...如果我错了,那么请你解释为是你的意图。



文章来源: Can you make menu items in Google spreadsheet custom menus tickable?