右键获取列头单元格的值
需求:在存在多行列头的前提下,通过右键操作,获取所选中的某列头单元格的值。思路:
监听onOpenMenu获取打开右键菜单的单元格行列信息。
由于是多行列头,可能存在合并单元格的情况,所以要对合并单元格做出判断。
主要代码如下:
function MyContextMenu() {}
MyContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread);
MyContextMenu.prototype.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, spread) {
// 获取行列信息
console.log(hitInfo);
var worksheetHitInfo = hitInfo.worksheetHitInfo;
// 表示选择的是列头右键菜单
if(worksheetHitInfo.rowViewportIndex == -1) {
// 获取行列索引
var row = worksheetHitInfo.row;
var col = worksheetHitInfo.col;
// 判断是否为合并单元格,如果是则获取合并单元格左上角单元格的row、col,进一步获取合并单元格的实际value
var range = new GC.Spread.Sheets.Range(row,col,1,1);
var spanArr = sheet.getSpans(range, GC.Spread.Sheets.SheetArea.colHeader);
if(spanArr.length > 0) {
console.log(spanArr);
var relRow = spanArr.row;
var relCol = spanArr.col;
var relValue = sheet.getValue(relRow, relCol, GC.Spread.Sheets.SheetArea.colHeader);
alert("选择列头单元格的值为" + relValue);
} else {
var value = sheet.getValue(row, col, GC.Spread.Sheets.SheetArea.colHeader);
alert("选择列头单元格的值为" + value);
}
}
};
var contextMenu = new MyContextMenu();
spread.contextMenu = contextMenu;最终效果如下图:
完整代码请参考附件demo
页:
[1]