本帖最后由 Matthew.Xue 于 2025-4-16 14:12 编辑
您好,久等了。和您同步一下调研的结论,您可以在工作表被保护时使用Text类型单元格的paint方法对单元格进行绘制,显示的内容可以通过单元格的值和复选框的选项来产生:
- let checkBoxListPaint = GC.Spread.Sheets.CellTypes.CheckBoxList.prototype.paintValue
- GC.Spread.Sheets.CellTypes.CheckBoxList.prototype.paintValue = function (ctx, value, x, y, w, h, style, context) {
- let _sheet = context.sheet
- if (style.locked && _sheet.options.isProtected) {
- let items = style.cellType._items
- let _value = []
- if (value && Array.isArray(value)) {
- _value = value
- }
- let str = items.filter(v => {
- return _value.indexOf(v.value) > -1
- }).map(v => {
- return v.text
- }).join(",")
- GC.Spread.Sheets.CellTypes.Text.prototype.paintValue.apply(this, [ctx, str, x, y, w, h, style, context]);
- }
- else {
- checkBoxListPaint.apply(this, arguments)
- }
- }
复制代码
上面的代码是针对复选框列表类型的单元格,您还提到了其他两种类型的单元格,也可以参考上述代码,只是str变量的获取方式稍有不同,您需要查看style中的cellType,根据不同情况来编写代码。
|