您好
我创建了一个自定义单元格类型,设置之后 再设置单元格的样式以后, 自定义单元格类型 被覆盖了
- export class CustomCellType extends GC.Spread.Sheets.CellTypes.Text {
- size: number;
- cusColor: string
- constructor(cusColor: string) {
- super();
- this.size = 10;
- this.cusColor = cusColor
- }
- }
- CustomCellType.prototype.paint = function(context, value, x1, y1, a1, b1, style, ctx) {
- if (!context) {
- return;
- }
- var a = (a1 + 2) / 2;
- var b = (b1 + 2) / 2;
- var x = a + x1;
- var y = b + y1;
- var ox = 0.5 * a,
- oy = 0.6 * b;
- context.save();
- context.translate(x, y);
- context.beginPath();
- context.strokeStyle = this.cusColor;
- context.lineWidth = 2;
- context.moveTo(0, b);
- context.bezierCurveTo(ox, b, a, oy, a, 0);
- context.bezierCurveTo(a, -oy, ox, -b, 0, -b);
- context.bezierCurveTo(-ox, -b, -a, -oy, -a, 0);
- context.bezierCurveTo(-a, oy, -ox, b, 0, b);
- context.closePath();
- context.stroke();
- context.restore();
- GC.Spread.Sheets.CellTypes.Text.prototype.paint.call(
- this,
- context,
- value,
- x1,
- y1,
- a1,
- b1,
- style,
- ctx,
- );
- };
- CustomCellType.prototype.getHitInfo = function(x, y, cellStyle, cellRect, context) {
- var xm = cellRect.x + cellRect.width / 2,
- ym = cellRect.y + cellRect.height / 2,
- size = 10;
- var info = {
- x: x,
- y: y,
- row: context.row,
- col: context.col,
- cellRect: cellRect,
- sheetArea: context.sheetArea,
- isReservedLocation: false,
- };
- if (xm - size <= x && x <= xm + size && ym - size <= y && y <= ym + size) {
- info.isReservedLocation = true;
- }
- return info;
- };
复制代码
- sheet.setCellType(2, 3, new CustomCellType('red'));
复制代码
设置自定义单元格类型后 在某些场景下设置该单元格的样式
- const editColumnStyle = new spreadNS.Style();
- editColumnStyle.name = 'editColumnStyle';
- editColumnStyle.borderTop = new GC.Spread.Sheets.LineBorder(
- '#e4e4e4',
- GC.Spread.Sheets.LineStyle.thin,
- );
- editColumnStyle.borderRight = new GC.Spread.Sheets.LineBorder(
- '#e4e4e4',
- GC.Spread.Sheets.LineStyle.thin,
- );
- editColumnStyle.borderBottom = new GC.Spread.Sheets.LineBorder(
- '#e4e4e4',
- GC.Spread.Sheets.LineStyle.thin,
- );
- editColumnStyle.borderLeft = new GC.Spread.Sheets.LineBorder(
- '#e4e4e4',
- GC.Spread.Sheets.LineStyle.thin,
- );
- sheet.addNamedStyle(editColumnStyle);
- sheet.setStyleName(0, -1, 'nullColumnStyle');
- sheetRef.setStyleName(-1, 4, 'editColumnStyle');
复制代码
原本生效的单元格类型 被背景色覆盖
未设置backcolor
设置后
请问这个问题怎么解决
另外,请问下我想让这个红圈放大一些,能在单元格** 类似 校验失败的 样式 应该怎么设置值
|