找回密码
 立即注册

QQ登录

只需一步,快速开始

祁画

初级会员

19

主题

71

帖子

200

积分

初级会员

积分
200
祁画
初级会员   /  发表于:2024-11-11 18:04  /   查看:451  /  回复:21
1金币
我希望给整个画布绘制一些分割线如何实现 1731319383610.png703435058.png

最佳答案

查看完整内容

那就不使用单元格边框为分割线了,使用浮动元素或形状线条设置边框线吧,这些元素不会取代单元格的Style,在导出前取消分割线,导入后需要时再设置。

21 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-11-11 18:04:34
来自 9#
祁画 发表于 2024-11-12 14:31
但是如果使用style设置分割线,我再去设置边框,分割线就消失了,而且导出的时候我希望边框样式可以导出。

那就不使用单元格边框为分割线了,使用浮动元素或形状线条设置边框线吧,这些元素不会取代单元格的Style,在导出前取消分割线,导入后需要时再设置。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-11-12 09:39:49
2#
您好!可以尝试通过Style设置,对某一列单元格的有边框或某一行单元格的上边框设置明显颜色的线条以标识。
回复 使用道具 举报
祁画
初级会员   /  发表于:2024-11-12 09:45:08
3#
比如我要给第一行单元格设置这个分割线,  是给第一行每个单元格都遍历过去,通过setStyle设置嘛
回复 使用道具 举报
祁画
初级会员   /  发表于:2024-11-12 09:49:18
4#
我可以这样拿到canvas直接绘制吗
const canvas = activeWorkbook.getHost().querySelector('[gcuielement="gcWorksheetCanvas"]');
const ctx = canvas.getContext('2d');
回复 使用道具 举报
祁画
初级会员   /  发表于:2024-11-12 09:52:39
5#
但是这样绘制  好像我需要知道初始化渲染结束跟重绘结束的钩子,在这里面拿到canvas重新画线条。
回复 使用道具 举报
祁画
初级会员   /  发表于:2024-11-12 10:20:56
6#
我们业务上不太适用使用style去绘制,因为这个分割线只存在于设计器里面,我们预览的时候是不能有这个分割线的 ,如果通过style去设置的话,toJson导出数据,再预览的时候通过fromjson去导入,style里面就会带着这个分割线的样式。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-11-12 13:50:00
7#
本帖最后由 Wilson.Zhang 于 2024-11-14 09:01 编辑

建议您通过setStyle的方式设置,遍历单元格设置样式是一种方式,SperadJS提供了另一种更便捷的批量设置方式,对单元格区域整体设置边框,可参考如下代码:
  1. sheet.getRange(2, 0, 1, 10).borderBottom(new GC.Spread.Sheets.LineBorder("blue", GC.Spread.Sheets.LineStyle.mediumDashed));
复制代码

上述代码执行效果如下图所示:
单元格区域边框线.png

可以参考官网API文档了解详情:
https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.CellRange#borderbottom

边框设置API文档.png842532958.png

另外,可以在导出时不携带样式,但是这样的话也无法携带其他样式。应对这种情况,可以在导出时取消分割线,导出的文件中即可不携带分割线,同时又保持了其他样式。您可以自行评估下看是否可行。
回复 使用道具 举报
祁画
初级会员   /  发表于:2024-11-12 14:31:18
8#
但是如果使用style设置分割线,我再去设置边框,分割线就消失了,而且导出的时候我希望边框样式可以导出。
回复 使用道具 举报
祁画
初级会员   /  发表于:2024-11-12 18:12:49
10#
浮动元素可以禁止拖拽嘛
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部