本帖最后由 eat_grape_5 于 2024-7-10 17:02 编辑
CellStatesType很方便,不过没关系,曲线救国绕道实现,思路如下:
1. 给工作表注册CellClick事件。
2. 在事件处理函数中判断被点击的单元格是否在冻结行范围内,如果在服务区内则获取选中区域,对选中区域单元格设置字体风格为加粗,但在这之前获取单元格原有风格,用于在点击其他单元格后将上一次操作的单元格字体风格还原。
代码如下:
- var oldStyle;
- var oldRange;
- sheet.unbind(GC.Spread.Sheets.Events.CellClick);
- sheet.bind(GC.Spread.Sheets.Events.CellClick, function(e, args) {
- if (oldRange && oldStyle) {
- oldRange.setStyle(oldStyle);
- }
- if (args.row < 3) { // 以冻结前三行为例
- var selectionArea = sheet.getSelections()[0];
- var row = selectionArea.row, col = selectionArea.col, rowCount = selectionArea.rowCount, colCount = selectionArea.colCount;
- oldRange = sheet.getRange(row, col, rowCount, colCount);
- oldStyle = sheet.getStyle(row, col);
- var style = new GC.Spread.Sheets.Style();
- style.fontStyle = 'bold';
- sheet.getRange(row, col, rowCount, colCount).setStyle(style);
- }
- });
复制代码
|