找回密码
 立即注册

QQ登录

只需一步,快速开始

繁星满天828

注册会员

3

主题

8

帖子

27

积分

注册会员

积分
27
  • 585

    金币

  • 3

    主题

  • 8

    帖子

最新发帖
繁星满天828
注册会员   /  发表于:2023-5-15 11:05  /   查看:1286  /  回复:6
1金币
您好,我定义了一个自定义单元格类型,用于显示一个png图标和标签文字,并不需要显示字段值,在 paint函数中已能在前端根据字段值实现绘制和取消绘制:

  1. //HrmFieldCellType.js
复制代码
  1. //App.vue
复制代码

执行完 setMyCellType 函数后,可以在表格中显示自定义的字段内容:
image.png492492064.png


现在出现的问题是,如果用 setFontStyle函数给这个单元格设置样式,如字体大小、名称等,就会把这个字段的类型改回了普通text类型
image.png712559203.png
image.png88250121.png

请问这个问题怎样解决呢?

最佳答案

查看完整内容

主要原因有二: 1、建议不要new 一个新的style,您在style上只设置了font属性,如果给单元格设置该style后,原有的样式可能会被冲掉。 2、SpreadJS作用的样式,是在apply应用的参数value上。如下代码: 在您的demo中,自定义单元格是通过ctx这块代码返回的,所以设置的font 样式无效。 两个思路: 1、在paint方法中,您可以获取到style信息,根据style属性做判断,在ctx中通过相应接口去做加粗、修改字体等,具体可以网 ...

6 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-15 11:05:02
来自 5#
本帖最后由 Lynn.Dou 于 2023-5-15 18:21 编辑

主要原因有二:
1、建议不要new 一个新的style,您在style上只设置了font属性,如果给单元格设置该style后,原有的样式可能会被冲掉。
image.png80394896.png
2、SpreadJS作用的样式,是在apply应用的参数value上。如下代码:

image.png461463927.png
在您的demo中,自定义单元格是通过ctx这块代码返回的,所以设置的font 样式无效。
两个思路:
1、在paint方法中,您可以获取到style信息,根据style属性做判断,在ctx中通过相应接口去做加粗、修改字体等,具体可以网上搜索下canvas的相关方法。

2、自定义单元格返回的文本,不在ctx中填充,而是通过修改value返回,如下:
image.png514637755.png


附件为思路2示例demo,仅作参考,具体位置请根据实际需求调整。

SpreadDemo.zip

43.67 KB, 下载次数: 55

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-15 11:20:30
2#
您好,
SpreadJS并没有setFontStyle 这样的接口,是否是您项目中封装的方法?
请提供一个可复现此问题的demo,这边结合代码验证并调研下问题原因。
回复 使用道具 举报
繁星满天828
注册会员   /  发表于:2023-5-15 12:00:41
3#
您好,根据您的提示,我做了一个简单的demo,代码在附件里面,请帮忙看看,谢谢


image.png493700561.png

image.png722136535.png

image.png827970580.png

image.png759176940.png
image.png166167906.png
image.png713405151.png
image.png928487243.png

SpreadDemo.zip

15.62 MB, 下载次数: 76

回复 使用道具 举报
繁星满天828
注册会员   /  发表于:2023-5-15 15:04:21
4#
Lynn.Dou 发表于 2023-5-15 11:20
您好,
SpreadJS并没有setFontStyle 这样的接口,是否是您项目中封装的方法?
请提供一个可复现此问题的d ...

版主好,根据您的提示,我做了一个简单的demo,代码在附件里面,请帮忙看看,谢谢!
image.png703435058.png
image.png613432311.png
image.png253814086.png

SpreadDemo.zip

15.62 MB, 下载次数: 75

回复 使用道具 举报
繁星满天828
注册会员   /  发表于:2023-5-15 19:26:32
6#
Lynn.Dou 发表于 2023-5-15 18:18
主要原因有二:
1、建议不要new 一个新的style,您在style上只设置了font属性,如果给单元格设置该style后 ...

非常感谢,我对套件的理解又加深了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-5-16 08:59:49
7#
繁星满天828 发表于 2023-5-15 19:26
非常感谢,我对套件的理解又加深了

能解决您的问题就好,那本帖就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部