找回密码
 立即注册

QQ登录

只需一步,快速开始

孙志强 讲师达人认证
金牌服务用户   /  发表于:2024-5-10 17:14  /   查看:398  /  回复:15
本帖最后由 Ellia.Duan 于 2024-5-30 18:09 编辑

调研编号:DOCXLS-10357
LastReview:2024-5-30
需要等7.2样式重构完毕后进一步调研

ssjson经过第一张图片的代码执行后数据不正确了 结果如第二张图
代码及ssjson已上传附件
image.png103839720.png image.png900299072.png


Desktop.zip

97.43 KB, 下载次数: 18

15 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-10 17:38:11
沙发
您好,这里是将相同的style抽出来成为一个独立的style,然后让其他的单元格去引用这个独立的style,从而达到节省JSON体积的效果,对单元格值是不会有影响的。
SpreadJS 17.0.10 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
孙志强讲师达人认证
金牌服务用户   /  发表于:2024-5-11 14:19:12
板凳
你好  在第一个sheet中的dataTable中的索引行为17及索引列为17的单元格中原始的是没有foreColor, 但是经过抽取成style之后 抽取的style名为"__b-16-20000000-0"中存在foreColor
image.png780960082.png image.png911084899.png
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-5-11 14:28:54
地板
从结果分析,可以看出这里生成时候会对将一些工作簿的默认样式也合并在namedstyle中,原因是Excel中默认样式就是以namedstyle去存储的。
您可以看到这个forecolor的结果不是一个颜色,是一个叫Text 1的字符串,这代表forecolor是一个主题颜色,主题颜色类似一个映射,实质内容会随着Excel不同的主题发生变化。

另外,要说明的一点就是,GcExcel与SpreadJS兼容是对内容一致性的兼容。而序列化过程中的中间产物并不一定是完全一样的。这也是我们不建议用户自己去解析序列化中间产物的原因之一。
回复 使用道具 举报
孙志强讲师达人认证
金牌服务用户   /  发表于:2024-5-11 17:30:32
5#
我们的业务场景是通过GCEXCEL需要替换ssjson中的某些数据的值, 不通过序列话的方式有其他方式吗
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-5-11 18:21:35
6#
导入之后通过GcExcel的API去替换(例如setValue),这个是推荐的方式。
回复 使用道具 举报
孙志强讲师达人认证
金牌服务用户   /  发表于:2024-5-13 09:20:13
7#
Clark.Pan 发表于 2024-5-11 18:21
导入之后通过GcExcel的API去替换(例如setValue),这个是推荐的方式。

我们的需求是替换一些样式, 但是经过formJson->toJson之后 样式不正确了
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-5-13 18:07:08
8#
那就是问题了,把不正确的json发给我们,我们当做问题去处理
回复 使用道具 举报
孙志强讲师达人认证
金牌服务用户   /  发表于:2024-5-14 09:22:19
9#
错误json已上传在附件中, 原始json在第一次提问中有

error.ssjson

119.5 KB, 下载次数: 10

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-5-14 13:55:09
10#
您好,我这边将您提供的原始ssjson和经过代码导出的ssjson对比了一下,没有发现样式上的变化。

原始:
image.png548807982.png

导出后:
image.png15982054.png

我这边具体应该如何操作才能复现您的问题呢?
SpreadJS 17.0.10 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部