找回密码
 立即注册

QQ登录

只需一步,快速开始

sean_chen

中级会员

44

主题

121

帖子

849

积分

中级会员

积分
849

[已处理] 样式展示方案

sean_chen
中级会员   /  发表于:2019-10-12 15:11  /   查看:6841  /  回复:13
你好,如附件中所示,红色部分②(空白)希望展示下划线,前面的文字①不要下划线
Capture.PNG
因为,①和②可能在同一个cell中,下划线和边框无法实现,这个展示方式可以实现吗?有什么解决方案?
现在的效果是:
Capture2.PNG
空白太大,同时,这列列宽不可以缩短。
谢谢。



13 个回复

倒序浏览
Fiooona
论坛元老   /  发表于:2019-10-12 16:10:23
沙发
可以使用自定义单元格实现,参考这个例子:
https://demo.grapecity.com.cn/Sp ... ipHyperLinkCellType
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
sean_chen
中级会员   /  发表于:2019-10-14 09:56:06
板凳
本帖最后由 sean_chen 于 2019-10-14 10:03 编辑
Fiooona 发表于 2019-10-12 16:10
可以使用自定义单元格实现,参考这个例子:
https://demo.grapecity.com.cn/SpreadJS/cdn/extendedExample ...

你好,
我用你提供的方法实现了,但是移植到demo中就没有效果了,帮忙排查下是什么问题?
谢谢
代码在ExportXlsx.vue文件中的spreadInitHandle方法中
  1. var cellType = new CellType();
  2.       this.spread.getActiveSheet().setCellType(1, 1, cellType)
复制代码


views.zip

67.57 KB, 下载次数: 147

回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-10-14 15:04:40
地板
不导入JSON是可以正常显示的,
image.png459530333.png
你的JSON文件影响的:
image.png119973143.png
你的这个文件是如何生成的?做了什么设置?
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
sean_chen
中级会员   /  发表于:2019-10-14 15:27:10
5#
Fiooona 发表于 2019-10-14 15:04
不导入JSON是可以正常显示的,

你的JSON文件影响的:

Hi,
如附件,我已经把tag和单元格格式,字体都删掉了,还是不行,请帮忙排查下,谢谢。

demo.zip

1.81 KB, 下载次数: 159

回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-10-14 18:00:21
6#
问题已收到 有结果回复您
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
sean_chen
中级会员   /  发表于:2019-10-14 18:31:52
7#
Fiooona 发表于 2019-10-14 18:00
问题已收到 有结果回复您

好的。
如果能在这一两天答复,希望越快越好,这个问题影响后续开发,万分感谢!!!
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-10-15 09:57:41
8#
  1. MutipHyperLinkCellType.prototype.paint = function(ctx, value, x, y, w, h, style, context) {
  2.         var hyperStyle = new GC.Spread.Sheets.Style()
  3.         hyperStyle.foreColor = 'black';
  4.         hyperStyle.font = style.font;
  5.         // hyperStyle.cellPadding = '0 0 0 55'
  6.         hyperStyle.textDecoration = GC.Spread.Sheets.TextDecorationType.underline;
  7.        
  8.         var commonStyle = new GC.Spread.Sheets.Style()
  9.         commonStyle.foreColor = 'black';
  10.         commonStyle.font = style.font;

  11.         ctx.font = style.font;

  12.         this._sumItemTextWidth = 0;
  13.         this._itemsTextWidth = [];
  14.         GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, value, x, y, w, h, style, context]);

  15.         for (var i = 0; i < this._items.length; i++) {
  16.                 var textWidth = parseInt(ctx.measureText(this._items[i]).width.toString()) + 10;
  17.                 this._itemsTextWidth.push(textWidth);
  18.                 if (i % 2 !== 0) {
  19.                 GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this,[ctx, this._items[i], x + this._sumItemTextWidth, y, w, h, hyperStyle, context] )
  20.         } else {
  21.                 GC.Spread.Sheets.CellTypes.Text.prototype.paint.apply(this, [ctx, this._items[i], x + this._sumItemTextWidth, y, w, h, commonStyle, context])
  22.         }
  23.                 this._sumItemTextWidth += textWidth;
  24.         }

  25. }
复制代码
参考以上代码,将 渲染单元格value放在 渲染this._items的前面
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
sean_chen
中级会员   /  发表于:2019-10-15 14:13:53
9#
Fiooona 发表于 2019-10-15 09:57
参考以上代码,将 渲染单元格value放在 渲染this._items的前面

你好,
如果是直接在页面渲染,是能够触发自定义类型的paint方法的,并且也有效果了。
我现在是在打印的时候,复制了一份sheet,并对复制后的sheet进行设置自定义单元格类型,不触发paint方法,这个有什么修改的方案吗?
附件中打印设置的单元格类型没有生效

ExportXlsx.zip

2.06 KB, 下载次数: 168

回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2019-10-15 17:53:53
10#
https://gcdn.grapecity.com.cn/showtopic-51678-1-86.html
可以参考这个文章,自定义单元格实现打印
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部