请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

空中单位
注册会员   /  发表于:2023-11-15 14:51  /   查看:99  /  回复:6
1金币
本帖最后由 Lynn.Dou 于 2023-11-21 11:51 编辑


产品:SpreadJS
版本:V14.1.1

image.png866793517.png

需要在这个绿色折角的位置标上序号,请问在14.1.1的版本里用什么方法比较好?

最佳答案

查看完整内容

在paint方法中参考下方代码去应用原value和样式: GC.Spread.Sheets.CellTypes.Base.prototype.paint.apply(this, [ctx, value, x, y, w, h, style, options]);

6 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-11-15 14:51:42
来自 5#
在paint方法中参考下方代码去应用原value和样式:
GC.Spread.Sheets.CellTypes.Base.prototype.paint.apply(this, [ctx, value, x, y, w, h, style, options]);
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-11-15 17:32:04
2#
您好,
目前不支持折角添加序号功能,您可以考虑利用自定义单元格canvas会绘制需求效果,学习指南有自定义单元格的示例,可以做下参考:
https://demo.grapecity.com.cn/sp ... types/custom/purejs

回复 使用道具 举报
空中单位
注册会员   /  发表于:2023-11-16 14:28:43
3#
我自己写了一个canvas画序号后,单元格内原本的值不显示了,有什么办法解决吗
  1. import GC from "@grapecity/spread-sheets";

  2. const spreadNS = GC.Spread.Sheets;

  3. export const serialNumberMap=new Map()
  4. //Custom Cell Type
  5. export class SerialNumberCellType{

  6. }

  7. SerialNumberCellType.prototype = new spreadNS.CellTypes.Base();
  8. SerialNumberCellType.prototype.paint = function (ctx: any, value: any, x: any, y: any, w: any, h: any, style: any, context: any) {
  9.     if (!ctx) {
  10.         return;
  11.     }
  12.     console.log('111111111',x,y,w,h,value,context)
  13.     console.log(context.sheet.name(),context.row,context.col)

  14.     ctx.fillStyle = 'blue';
  15.     ctx.font = 'bold 8px Arial';
  16.     let text = serialNumberMap.get(context.sheet.name()+'-'+context.row+'-'+context.col);
  17.     ctx.fillText(text,x+w-2,y+8)

  18. };
复制代码

  1.   private tttt() {
  2.     const sheet = spreadVM.getSheetFromName('D3')
  3.     serialNumberMap.set('D3-1-1', 1)
  4.     let c=sheet.getCell(1, 1)
  5.     let v=c.value()
  6.     let fla=c.formula()
  7.     let fte=c.formatter()
  8.     sheet.getCell(1, 1).cellType(new SerialNumberCellType())
  9.     c.value(v)
  10.     c.formula(fla)
  11.     c.formatter(fte)
  12.    
  13.   }
复制代码
回复 使用道具 举报
空中单位
注册会员   /  发表于:2023-11-16 14:38:49
4#
样式也不能丢,最好这个单元格其他的一些设置都不会受自定义的celltype影响,我只是想画个标记
回复 使用道具 举报
空中单位
注册会员   /  发表于:2023-11-20 16:46:43
6#
Lynn.Dou 发表于 2023-11-16 17:32
在paint方法中参考下方代码去应用原value和样式:
GC.Spread.Sheets.CellTypes.Base.prototype.paint.appl ...

已经ok了,谢谢,可以结贴了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-11-20 17:11:49
7#
那本帖就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部