找回密码
 立即注册

QQ登录

只需一步,快速开始

[调研中] 导出后格式丢了

jiqimao讲师达人认证
金牌服务用户   /  发表于:2019-4-16 13:09:37
11#
如果使用后端组件是不是可以比较高效的判断namedStyle是否有效呢?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-4-16 18:13:36
12#
您好,因为性能问题,Spread JS没有维护namedStyle的引用集合,

所以直接在SpreadJS中判断是否被引用,只能通过循环遍历所有单元格的方式,性能上不可能完成。

因此推荐通过后台,分析ssjson的方式,实现对namedStyle是否有限的判断,

具体思路是:

拿到ssjson中namedStyles集合,这里保存了所有的namedStyle,如图:

image.png594549560.png

然后利用正则判断ssjson文件中其它地方是否有引用。

这样的操作显然放在后台执行比较合适。
回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2019-4-16 22:52:05
13#
我想尝试用gcexcel后端组件来检查namedStyle是否有效。想请问一下,你说:“利用正则判断ssjson文件中其它地方是否有引用”,那么ssjson中在哪几个块中是会存在引用namedStyle的?因为ssjson本身是很大的,全扫一遍性能肯定不会好,所以请帮我确定一下会出现在哪几个块中。另外,被引用的话,会以什么样的格式出现?因为我们不能确定namedStyle所有的被引用的格式,所以还请麻烦你提供一下。这两个问题,都没办法在文档里找到,用自己的ssjson来看也不能保证是所有的namedStyle会出现的位置和格式,所以只能问你了,请不要嫌我们烦哈,这个真的只能问你们。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-4-17 11:32:21
14#
您好,怎么可能嫌麻烦,这是我们分内事嘛~

这个问题棘手的地方在于,Excel文档本身没有标记哪些namedStyle被引用,所以在导入时,SpreadJS只能把所有namedStyle导入进来。

要优化Excel文档,去除冗余namedStyle,这个操作无论放在哪个环境,用什么插件,都必须用遍历的方式来处理。


GCExcel也没有能直接判断某个namedStyle是否被引用的接口,所以也得用遍历的方式来实现。

区别在于这种比较性能不友好的操作,在后台执行一定会比前端跑更适合,您是否可以考虑一下,在系统比较空闲的时候启动优化进程来执行批量优化?比如凌晨1、2点左右,针对这种问题文档,在后台统一处理一下。
回复 使用道具 举报
jiqimao讲师达人认证
金牌服务用户   /  发表于:2019-4-17 18:54:09
15#
你是说namedStyle可能会出现在ssjson中的任何一个位置吗?那被引用的格式可以告诉我们一下吗?谢谢。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-4-18 17:33:19
16#
您好,很抱歉,这个问题我们理解的有偏差。

我们就这个问题做了一些深入调研,

实际上在Excel中,namedStyle只是一个引用,可以理解为它是一组样式的名称,

当单元格设置了对应的样式后,namedStyle就已经失去了它的作用,

我用图片解释一下:

image.png329465941.png

这是Excel的namedStyle,每一格都是一个namedStyle,一个样式集。

当为某个单元格设置了namedStyle后,实际上这个单元格

通过namedStyle的引用,获得了对应的共享样式集。此时单元格已经与namedStyle没有关联了。

如图:

image.png352185668.png

实际上上框的样式与下框的namedStyle没有关联,它们都引用了同样的共享样式。

可以把namedStyle看做一个变量,而单元格的样式通过这个变量获取到引用的实例后,

这个变量就没有用了。

因此针对本帖的问题,研发这边推荐您把所有的namedStyle删除,这是因为您Excel文档中

包含了非法字符的namedStyle,导致Excel的样式表解析失败了,

直接删除所有的namedStyle后,Excel的样式并没有受到影响。

所以我们不用纠结namedStyle的引用情况,可以直接将它们删除即可。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部