找回密码
 立即注册

QQ登录

只需一步,快速开始

观远前端
金牌服务用户   /  发表于:2023-7-11 10:15  /   查看:2828  /  回复:15
本帖最后由 Joestar.Xu 于 2023-7-21 15:23 编辑

当调用 workbook.toJSON()  得到 sheet 中数据为:

image.png316625670.png

此时通过 excelIo 保存为 excel 保存为 excel 后再次导入后得到 json 中sheet 数据是如下截图形式
image.png804767455.png

导入完文件,将上述匹配模板语法的单元格为设置自定义单元格后,调用 workbook.toJSON() 得到数据如下:
image.png954228210.png



__builtInStyle2 这个样式是如何生成的,为什么第二次导入设置为自定义单元格后,单元格样式会填充一些样式呢?
GcExcel 又会如何解析 _builtInStyle2 这个样式 和 后面那个填充了一堆内容的样式呢?



15 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-7-11 16:55:51
沙发
您好,请问您这边是要根据这些内容实现什么样的需求呢?
回复 使用道具 举报
观远前端
金牌服务用户   /  发表于:2023-7-11 19:25:01
板凳
本帖最后由 观远前端 于 2023-7-11 19:30 编辑
Joestar.Xu 发表于 2023-7-11 16:55
您好,请问您这边是要根据这些内容实现什么样的需求呢?

_builtInStyle2导致我根据当前页面主题色设置 sheet 的默认样式未生效, 第二次填充完样式后,GcExcel根据模板计算得到的单元格上没有样式,sheet 设置的默认样式就生效了

这两种场景,我实际都没有手动设置单元格的样式,两者有样式上的区别,我希望效果统一,设置的默认样式都可以生效
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-7-12 09:52:00
地板
观远前端 发表于 2023-7-11 19:25
_builtInStyle2导致我根据当前页面主题色设置 sheet 的默认样式未生效, 第二次填充完样式后,GcExcel根 ...

您好,问题已收到,这边调研一下,有进展我会在帖子中回复您。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-7-12 10:32:57
5#
您好,__builtInStyle2这个样式是给Excel设计的,这是Excel的一个内置样式,当第二次设置为自定义单元格时,因为自定义单元格本身也是style的一部分,这个时候就需要将__builtInStyle2这个样式和自定义单元格本身的样式合并,因此看上去会填充了很多样式。

GCExcel对于__builtInStyle2这种样式会将其转换为普通形式去解析,也就是将其展开;对于填充了一堆内容的样式则是按照正常情况去解析的。

关于您的具体问题,这边没太看明白,“页面主题色设置 sheet 的默认样式未生效”需要您再具体解释一下,页面主题色是如何设置的?

可以再详细说明一下您的操作步骤,代码,您所期望的效果和目前的效果吗?有操作录屏和Demo最好。
回复 使用道具 举报
观远前端
金牌服务用户   /  发表于:2023-7-12 14:25:33
6#
Joestar.Xu 发表于 2023-7-12 10:32
您好,__builtInStyle2这个样式是给Excel设计的,这是Excel的一个内置样式,当第二次设置为自定义单元格时 ...

【GCExcel对于__builtInStyle2这种样式会将其转换为普通形式去解析,也就是将其展开;对于填充了一堆内容的样式则是按照正常情况去解析的。】能详细讲一下对应的规则吗?


设置 sheet 的默认颜色其实很简单,就是自定义 sheet 对外暴露的颜色设置,但是这个设置,在上述两种情况下,前者(__builtInStyle2)无法生效,后者可以生效

image.png322849425.png

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-7-12 17:32:23
7#
观远前端 发表于 2023-7-12 14:25
【GCExcel对于__builtInStyle2这种样式会将其转换为普通形式去解析,也就是将其展开;对于填充了一堆内容 ...

您好,关于GCExcel解析Style的详细规则因为涉及到了源码,因为我们是接触不到源码的,所以无法再详细说明了。

“但是这个设置,在上述两种情况下,前者(__builtInStyle2)无法生效,后者可以生效”,对于这句话我还是无法理解您的意思,生效是什么样式?不生效是什么样式?还请您再详细描述一下,最好有直观的图片来说明问题。
回复 使用道具 举报
观远前端
金牌服务用户   /  发表于:2023-7-12 19:04:45
8#
Joestar.Xu 发表于 2023-7-12 17:32
您好,关于GCExcel解析Style的详细规则因为涉及到了源码,因为我们是接触不到源码的,所以无法再详细说明 ...

image.png517477721.png

如截图所示,黑色字号大一些的就是我的自定义样式未生效的情况,颜色浅一点的字号小一点的就是自定义样式生效的情况
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-7-13 10:58:18
9#
也就是说,您在设置了sheet的默认样式后,导入经过excelIO处理后的json,自定义样式未生效;而在将其重新设置为自定义单元格后,自定义样式就生效了。

如果是这样的话,请您发一个可以复现这个问题的Demo,我们这边调研一下。
回复 使用道具 举报
观远前端
金牌服务用户   /  发表于:2023-7-13 15:10:51
10#
Joestar.Xu 发表于 2023-7-13 10:58
也就是说,您在设置了sheet的默认样式后,导入经过excelIO处理后的json,自定义样式未生效;而在将其重新设 ...

是的。

如下为designer和 spread 的demo。
OnlineDesignerSimple.tsx (7.03 KB, 下载次数: 128)
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部