【17.0.6】合并两个文件时正确处理样式问题
本帖最后由 我想吃麻薯 于 2024-8-23 13:41 编辑目前我们的业务场景:
用户需要在当前的文件——下称为文件 1(在 spread 中 )中,选择另一个文件——下称文件 2(一般来说是 excel文件)中的某几个 sheet,合并到当前文件中,且其中合并上来的 sheet 样式保留
目前我们的解决方案:
将文件 2 中所有的样式用getNamedStyles()获取到,重命名(加个随机字符前缀保证不会有冲突),随后使用addNamedStyle()赋值给文件 1,从文件 2 指定 sheet 合并到文件 1还能保证样式不会丢失。
目前出现的问题:
1. 这样合并样式不会丢,但是会有很多文件 2 中用不到样式也会赋值到文件 1中,会导致样式文件膨胀。
2. 如果文件 2 中本身样式有问题(比如 excel 打开时会自动修复 style,见截图),那么与文件 1合并后的文件导出为 excel,也会报同样的问题,可见附件,是我合并后导出的 excel(除了 sheet1,都是合并上来的 sheet)
一点建议,贵公司是否可以考虑以下两点:
1. 样式优化
2. 自定义名称优化
在服务端通过GCExcel合并,内部会处理掉样式的问题 1. 这样合并样式不会丢,但是会有很多文件 2 中用不到样式也会赋值到文件 1中,会导致样式文件膨胀。
2. 如果文件 2 中本身样式有问题(比如 excel 打开时会自动修复 style,见截图)
问题1:
SpreadJS 和 GcExcel 作为控件,无法判断哪些样式对业务有意义,因此从产品设计角度,不会“智能”或者“自动”的删除用户已有的数据和设置。
目前通过已有 API 的组合可以达到找到样式 》 判断是否无用 》 删除样式
问题2:
这个修复实际上是应用层面的功能,同样,需要通过用户的选择(干预)才能决定下一步动作
可以提供这样一个文件给我,因为类似的样式问题可能有非常多类型,如果作为导入导出的内置功能,不仅影响性能,也可能只能覆盖个别场景。
AlexZ 发表于 2024-8-30 11:29
问题1:
SpreadJS 和 GcExcel 作为控件,无法判断哪些样式对业务有意义,因此从产品设计角度,不会 ...
请问“目前通过已有 API 的组合可以达到找到样式 》 判断是否无用 》 删除样式”,如何判断是否无用呢 这里的“无用”或者“用不到”应该是个业务侧的判断
从技术上讲,如果两个样式中的设置完全一致,应用的范围也一样,可以认为是重复的样式
如果仅设置不一样,但应用的范围,或者某个样式会被应用到条件格式中,这样的情况是否“无用”就需要咱们进行判断了
页:
[1]