找回密码
 立即注册

QQ登录

只需一步,快速开始

我想吃麻薯
初级会员   /  发表于:2024-8-23 12:11  /   查看:533  /  回复:4
本帖最后由 我想吃麻薯 于 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. 自定义名称优化


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

4 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-8-23 17:07:43
沙发
在服务端通过GCExcel合并,内部会处理掉样式的问题
回复 使用道具 举报
AlexZ讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-8-30 11:29:32
板凳
1. 这样合并样式不会丢,但是会有很多文件 2 中用不到样式也会赋值到文件 1中,会导致样式文件膨胀。
2. 如果文件 2 中本身样式有问题(比如 excel 打开时会自动修复 style,见截图)



问题1:
SpreadJS 和 GcExcel 作为控件,无法判断哪些样式对业务有意义,因此从产品设计角度,不会“智能”或者“自动”的删除用户已有的数据和设置。
目前通过已有 API 的组合可以达到找到样式 》 判断是否无用 》 删除样式

问题2:
这个修复实际上是应用层面的功能,同样,需要通过用户的选择(干预)才能决定下一步动作

可以提供这样一个文件给我,因为类似的样式问题可能有非常多类型,如果作为导入导出的内置功能,不仅影响性能,也可能只能覆盖个别场景。
回复 使用道具 举报
我想吃麻薯
初级会员   /  发表于:2024-9-12 14:08:54
地板
AlexZ 发表于 2024-8-30 11:29
问题1:
SpreadJS 和 GcExcel 作为控件,无法判断哪些样式对业务有意义,因此从产品设计角度,不会 ...

请问“目前通过已有 API 的组合可以达到找到样式 》 判断是否无用 》 删除样式”,如何判断是否无用呢
回复 使用道具 举报
AlexZ讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-9-14 17:48:38
5#
这里的“无用”或者“用不到”应该是个业务侧的判断


从技术上讲,如果两个样式中的设置完全一致,应用的范围也一样,可以认为是重复的样式

如果仅设置不一样,但应用的范围,或者某个样式会被应用到条件格式中,这样的情况是否“无用”就需要咱们进行判断了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部