找回密码
 立即注册

QQ登录

只需一步,快速开始

Wilson.Zhang
超级版主   /  发表于:2024-8-28 14:09:20
11#
您好!请问您这个问题是否找到了其他解决方法呢?我们测试发现,对单元格设置了foreColor后foreColor值即为设置值,是可以同默认值或null或其他值区别开来。对于您的需求场景,您可以评估下是否还存在影响。
回复 使用道具 举报
innerwang
中级会员   /  发表于:2024-8-28 15:00:17
12#
Wilson.Zhang 发表于 2024-8-28 14:09
您好!请问您这个问题是否找到了其他解决方法呢?我们测试发现,对单元格设置了foreColor后foreColor值即为 ...

你好,问题是,当单元格未设置颜色时,仅设置一下单元格的背景色,此时通过 json 数据查看单元格对应的样式,会发现 foreColor 和 font 都被设置了值。

对于这个问题我们目前还没有找到方案,期望是不要在单元格样式上填充任何默认样式,这个你们可以做吗?
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-28 16:22:35
13#
innerwang 发表于 2024-8-28 15:00
你好,问题是,当单元格未设置颜色时,仅设置一下单元格的背景色,此时通过 json 数据查看单元格对应的样 ...

我们正在调研这个问题。
理解您说的问题和期望,如果对单元格设置了foreColor或字体相关样式,文件的json数据中对于foreCoor属性的值也与设置的一致,也就是可以正常设置后保留这些内容,您可以实际体验下看是否能满足您的需求场景。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-3 16:25:01
14#
您好!我们正在调研您的问题,向您同步下进展,同时也需要和您确认一些细节。

1725351836537.png873107910.png

针对上图您所说的内容,SpreadJS支持为整张工作表、整行、整列、单个单元格设置样式,除此之外还有条件格式等,这些样式最终叠加在单元格上。因此,单元格的样式是叠加式样式。对这样的叠加式样式,定义了样式的优先级,单元格样式>行样式>列样式>工作表默认样式。

如果您有对单元格设置样式,同时也设置了默认样式,那么单元格样式更优先,比如最终将呈现的是单元格的背景颜色而非默认样式的背景颜色。那么,您如何为sheet设置默认样式,是通过Worksheet:setDefaultStyle()吗?如果不是的话,还请您详细介绍下您的设置细节,必要时可以提供录屏和原始文件,这样有助于我们分析您的问题。


回复 使用道具 举报
innerwang
中级会员   /  发表于:2024-9-6 14:34:28
15#
Wilson.Zhang 发表于 2024-9-3 16:25
您好!我们正在调研您的问题,向您同步下进展,同时也需要和您确认一些细节。

你好,我的意思是,我在单元格上仅设置了背景色,但是通过 workbook.toJSON() 看单元格的样式时,会发现除了写入了背景色,还写入了 font 等样式,
image.png478896483.png
而我期望是如果只写入背景色,那么就只应该有背景色,不要有其他样式,具体可以再看一下主楼哈
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-6 18:08:25
16#
innerwang 发表于 2024-9-6 14:34
你好,我的意思是,我在单元格上仅设置了背景色,但是通过 workbook.toJSON() 看单元格的样式时,会发现 ...

如果您是想为Worksheet设置样式,那可以对Worksheet序列化为.ssjson文件,这样能满足您的需要。
回复 使用道具 举报
innerwang
中级会员   /  发表于:2024-9-9 17:28:58
17#
Wilson.Zhang 发表于 2024-9-6 18:08
如果您是想为Worksheet设置样式,那可以对Worksheet序列化为.ssjson文件,这样能满足您的需要。

感觉您并没有理解我的意思呢,我的意思是,给单元格设置样式时,能不能不要默认写入 foreColor 和 font, 即单元格对应的命名样式里,在我没有给单元格设置颜色字体时,就不要写入颜色和字体
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:7 天前
18#
innerwang 发表于 2024-9-9 17:28
感觉您并没有理解我的意思呢,我的意思是,给单元格设置样式时,能不能不要默认写入 foreColor 和 font, ...

我理解您的意思,只是问题还在调研中,我们得知您的终极需求是“设置样式”,所以想在调研进行的过程中尝试讨论解决下这个需求。没关系,我们正在调研关于ExcelIO导出为.xlsx文件中出现值为“#000000“的foreColor的缘由。请您等候!
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:3 天前
19#
您好!我们调研了解到Excel文件并不会认为未被设置的样式属性应该无值,以您的问题场景为例,虽然未对单元格设置foreColor属性,Excel文件的序列化格式Excel XML在记录时会为foreColor属性设置默认值,再将Excel文件导入SpreadJS并序列化为ssjson便看到了foreColor有了默认值。

这是Excel对于本身序列化的设计,不受SpreadJS控制。Excel并非SpreadJS序列化/反序列化的文件格式,SpreadJS支持的序列化/反序列文件格式是.ssjson和.sjs文件,Excel是SpreadJS可以转换的一种文件类型。

我们也不建议修改.ssjson文件中的属性值,因为在版本迭代更新的过程中,.ssjson文件内部结构可能会有变更,如果用户自行修改其内部结构,或许会在高低版本之间无法兼容用户自定义的业务实现。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部