找回密码
 立即注册

QQ登录

只需一步,快速开始

spreadjs666
金牌服务用户   /  发表于:2024-7-24 17:24  /   查看:2178  /  回复:13
1金币
【v17】单元格渲染问题

如附件所示,当在paint中使用了value = {...value1} ,列宽充足及列宽不充足的情况下展示的样式不一致
列宽不足:
image.png237197264.png
列宽充足:
image.png428623046.png

当不使用value = {...value1} ,列宽充足及列宽不充足的情况下展示的样式一致



问题1: 列宽不一致导致样式展示不一致的问题?
问题2: 如果直接更改paint中的value,会不会导致value值改变等其他影响?

使用场景:https://gcdn.grapecity.com.cn/showtopic-223233-1-1.html
image.png441614379.png

static的副本 2.zip

12.69 MB, 下载次数: 319

最佳答案

查看完整内容

您好,添加wordWra属性即可解决您的问题 以及在您的代码中,重写getAutoFitWidth,getAutoFitHeight时,需要注意第三个参数text也要变化,不仅仅是value发生变化。 如前面所说,添加wordWrap可以解决列宽不够时,富文本样式的变化。 如果加上 sheet.autoFitColumn(1)会调用重写的getAutoFitWidth方法。 最后,关于列宽不够时,不显示富文本的问题 ,将深入调研,有进展会及时联系您。

13 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-24 17:24:40
来自 3#
本帖最后由 Ellia.Duan 于 2024-7-25 12:01 编辑

您好,添加wordWra属性即可解决您的问题
  1.   sheet.getCell(1,1).wordWrap(true)
复制代码
以及在您的代码中,重写getAutoFitWidth,getAutoFitHeight时,需要注意第三个参数text也要变化,不仅仅是value发生变化。
image.png145834960.png

如前面所说,添加wordWrap可以解决列宽不够时,富文本样式的变化。
image.png765068359.png
如果加上 sheet.autoFitColumn(1)会调用重写的getAutoFitWidth方法。
image.png497416686.png



最后,关于列宽不够时,不显示富文本的问题 ,将深入调研,有进展会及时联系您。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-24 17:54:54
2#
您好,需要调研下回复您。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-25 12:22:19
4#
您好,还想了解下,您为什么没有完全使用自定义单元格,根据您的需求,setValue时,设置多个超链接,在paint的时候进行分割,添加图标也是可以解决您的问题的。

所以,想了解下,为什么需要富文本+自定义单元格来完成这个需求呢?
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-7-25 20:07:12
5#
Ellia.Duan 发表于 2024-7-25 11:45
您好,添加wordWra属性即可解决您的问题
以及在您的代码中,重写getAutoFitWidth,getAutoFitHeight时,需 ...

您好,关于您提出的sheet.getCell(1,1).wordWrap(true)方案:
由于【自动换行】是工具栏中的一个功能,正常来说是需要用户手动设置的,如果我们主动设置了有超链接的单元格都自动换行,会对用户产生困扰和疑问,这个方案不太符合产品规则。

因此依旧需要等待您回复【列宽不够不显示富文本】的问题
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-7-25 20:19:25
6#
Ellia.Duan 发表于 2024-7-25 12:22
您好,还想了解下,您为什么没有完全使用自定义单元格,根据您的需求,setValue时,设置多个超链接,在pain ...

您好,我们目前的方案就是【setValue时,设置多个超链接,在paint的时候进行分割】,但产生了以上列宽的问题。至于您说的【添加图标】,也是今天在会上讨论过的,添加图标会导致用户在筛选、排序、公示栏等多个操作中都收到图标的影响。


富文本+自定义单元格是由于 我们需要单元格中既能展示富文本又能展示多个超链接,仅在原有单元格的基础上添加了超链接的展示逻辑,其他一切保持一致(如:样式设置、自动换行、查找替换等)。
之前提问也提到了格完全重写canvas渲染逻辑,但是得到了【换行渲染的逻辑需要自行重写】的结论,可能也会同时影响到自动换行、自适应行高、列宽等操作的大规模重写。同时获悉spreadJS是支持重写paint内部部分逻辑的,因此采用了这种方案。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-26 09:45:28
7#
本帖最后由 Ellia.Duan 于 2024-7-26 09:48 编辑

反馈收到,调研编号:SJS-25620 SJS-25611
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-29 09:40:05
8#
本帖最后由 Ellia.Duan 于 2024-7-29 10:40 编辑

您好,可以添加下面的代码解决列宽不够不显示富文本的问题:
  1. sheet.options.allowCellOverflow = false;
复制代码

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-29 10:37:27
9#
本帖最后由 Ellia.Duan 于 2024-7-29 10:39 编辑

您好,在17.1版本,我们对富文本编辑器进行了调整,增加了符号列表功能,如下图所示:

image.png605305175.png
当您的上述代码升级到17.1版本后,由于内部逻辑进行了调整,富文本将失效。
您可以参考下面的代码使其生效,
  1. delete value.converted;
复制代码
image.png988640136.png

但是,添加此行代码后,符号列表功能将不可正常使用。

您需要根据上述内容评估此方案。
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-7-30 10:47:46
10#
Ellia.Duan 发表于 2024-7-29 09:40
您好,可以添加下面的代码解决列宽不够不显示富文本的问题:

您好,添加sheet.options.allowCellOverflow = false;会导致单元格无法溢出展示,目前提出的方案都牺牲了现有功能。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部