请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

youlika

注册会员

8

主题

18

帖子

68

积分

注册会员

积分
68
youlika
注册会员   /  发表于:2021-9-3 17:23  /   查看:1979  /  回复:6
1金币
Spread 14.1 excel导入后导出单独sheet页样式丢失

最佳答案

查看完整内容

推测您样式应该是buildinstyle,buildinstyle是全局的,所以不会单独sheet存储,那么导出单sheet时候也就不会导出。导致样式丢失。这个问题没啥解决办法,这样做有这种问题是正常情况。可以考虑更换其他思路来实现。

6 个回复

倒序浏览
youlika
注册会员   /  发表于:2021-9-3 17:27:08
来自 3#
本帖最后由 youlika 于 2021-9-3 17:28 编辑

原因:导入的时候所有的样式都在命名空间下,而sheet是存在它本身的dataTable的项的style下。
解决办法:
1、先根据导入的excel 完成fromJSON渲染后
2、通过遍历cell(getStyle),后重新设置 setStyle回去。
3、再导出单独的sheet的JSON样式才不丢失

评分

参与人数 1金币 +500 收起 理由
Clark.Pan + 500 自食其力找问题的解决方法,很棒!

查看全部评分

回复 使用道具 举报
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-3 17:23:32
来自 2#
推测您样式应该是buildinstyle,buildinstyle是全局的,所以不会单独sheet存储,那么导出单sheet时候也就不会导出。导致样式丢失。这个问题没啥解决办法,这样做有这种问题是正常情况。可以考虑更换其他思路来实现。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-3 17:29:24
4#
这样做不失为一种解决办法,但是循环可能会划掉一部分时间,循环前需要用suspendPaint和resumePaint来防止多次重绘
回复 使用道具 举报
youlika
注册会员   /  发表于:2021-9-3 17:31:17
5#
Clark.Pan 发表于 2021-9-3 17:23
推测您样式应该是buildinstyle,buildinstyle是全局的,所以不会单独sheet存储,那么导出单sheet时候也就不 ...

最后还是通过clone样式去实现了,存到sheet它本身去,这个办法不是最佳理想的方式,但目前能先解决
回复 使用道具 举报
youlika
注册会员   /  发表于:2021-9-3 17:33:26
6#
Clark.Pan 发表于 2021-9-3 17:29
这样做不失为一种解决办法,但是循环可能会划掉一部分时间,循环前需要用suspendPaint和resumePaint来防止 ...

对,已经是这么处理了
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-3 17:34:10
7#
好的,那就结贴了,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部