如何实现 excel alt+down 键来显示 List Validator 的下拉菜单
How to implement excel alt+down key to display the drop down of a List Validator
我的应用程序的要求之一是能够在不使用鼠标的情况下完全导航 sheet。
似乎由于某种原因 excel 键绑定 Alt+Down 在 SpreadJS 中不起作用。
我已经实施了一个解决方法,它基本上是在绑定到 Alt+Down[=21 的单元格上激活 sheet 编辑模式=],这允许您使用上下键循环浏览列表值,但您无法看到列表中的所有值(列表没有 "drop down")。
有机会使用 SpreadJS 函数实现这个,或者这是我唯一的选择来做 "hacky" 诸如在相对于单元格的一些 x,y 坐标中强制点击事件,试图抓住下拉图标?
您可以创建自定义命令并将其添加到 Spread 的 commandManager。
var commandManager = spread.commandManager()
// register command
commandManager.register('showList', {
canUndo: false,
execute: function(workbook) {
var sheet = workbook.getActiveSheet();
var r = sheet.getActiveRowIndex();
var c = sheet.getActiveColumnIndex();
var validator = sheet.getCell(r, c).validator();
if (validator) {
// if cell has data validator, show the list.
workbook.getHost().getElementsByTagName('input')[0].click();
}
}
},
40, false, false, true, false);
完整性的完整代码:
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var sheet = spread.getActiveSheet();
var dv1 = new GC.Spread.Sheets.DataValidation.createListValidator('Fruit,Vegetable,Food');
dv1.inputTitle('Please choose a category:');
dv1.inputMessage('Fruit, Vegetable, Food');
sheet.setDataValidator(0, 1, dv1);
sheet.setDataValidator(1, 1, dv1);
var commandManager = spread.commandManager()
// register command
commandManager.register('showList', {
canUndo: false,
execute: function(workbook) {
var sheet = workbook.getActiveSheet();
var r = sheet.getActiveRowIndex();
var c = sheet.getActiveColumnIndex();
var validator = sheet.getCell(r, c).validator();
if (validator) {
// if cell has data validator, show the list.
workbook.getHost().getElementsByTagName('input')[0].click();
}
}
},
40, false, false, true, false);
导航到单元格 B1 或 B2,然后按 Alt+向下键。
我的应用程序的要求之一是能够在不使用鼠标的情况下完全导航 sheet。 似乎由于某种原因 excel 键绑定 Alt+Down 在 SpreadJS 中不起作用。
我已经实施了一个解决方法,它基本上是在绑定到 Alt+Down[=21 的单元格上激活 sheet 编辑模式=],这允许您使用上下键循环浏览列表值,但您无法看到列表中的所有值(列表没有 "drop down")。
有机会使用 SpreadJS 函数实现这个,或者这是我唯一的选择来做 "hacky" 诸如在相对于单元格的一些 x,y 坐标中强制点击事件,试图抓住下拉图标?
您可以创建自定义命令并将其添加到 Spread 的 commandManager。
var commandManager = spread.commandManager()
// register command
commandManager.register('showList', {
canUndo: false,
execute: function(workbook) {
var sheet = workbook.getActiveSheet();
var r = sheet.getActiveRowIndex();
var c = sheet.getActiveColumnIndex();
var validator = sheet.getCell(r, c).validator();
if (validator) {
// if cell has data validator, show the list.
workbook.getHost().getElementsByTagName('input')[0].click();
}
}
},
40, false, false, true, false);
完整性的完整代码:
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var sheet = spread.getActiveSheet();
var dv1 = new GC.Spread.Sheets.DataValidation.createListValidator('Fruit,Vegetable,Food');
dv1.inputTitle('Please choose a category:');
dv1.inputMessage('Fruit, Vegetable, Food');
sheet.setDataValidator(0, 1, dv1);
sheet.setDataValidator(1, 1, dv1);
var commandManager = spread.commandManager()
// register command
commandManager.register('showList', {
canUndo: false,
execute: function(workbook) {
var sheet = workbook.getActiveSheet();
var r = sheet.getActiveRowIndex();
var c = sheet.getActiveColumnIndex();
var validator = sheet.getCell(r, c).validator();
if (validator) {
// if cell has data validator, show the list.
workbook.getHost().getElementsByTagName('input')[0].click();
}
}
},
40, false, false, true, false);
导航到单元格 B1 或 B2,然后按 Alt+向下键。