找回密码
 立即注册

QQ登录

只需一步,快速开始

EleVeN_C

注册会员

10

主题

24

帖子

104

积分

注册会员

积分
104
EleVeN_C
注册会员   /  发表于:2020-12-24 19:45  /   查看:3047  /  回复:7
1金币
需求:  模板 workBook1    里面有style  (style1,style2,......)


现在需要将workBook1    中的style 全部复制到另一个workBook中,应该如何处理?

最佳答案

查看完整内容

目前可能没有更好的方法了,目前比较可行的是先加载样式模板再为工作簿添加业务逻辑。 这边不建议您直接修改ssjson,这样容易出现难以定位的问题。

7 个回复

正序浏览
EleVeN_C
注册会员   /  发表于:2020-12-25 15:11:55
7#
DerrickJiao 发表于 2020-12-25 15:05
您可以参考下面的代码

workbookB 中有业务数据
你这样  workbookB.fromJson(jsonstr);   
那不就将workbookB 直接替换成了workbookA吗?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-12-25 15:05:43
6#
EleVeN_C 发表于 2020-12-25 14:41
模板是一个workBook  A,      展示的一个workBook B.    怎么能fromJson(A) 呢,
有一个思路是 返回给 ...

您可以参考下面的代码
  1.         Workbook workbookA = new Workbook();
  2.                 Workbook workbookB = new Workbook();

  3.                
  4.                 String source = "source.xlsx";
  5.                 workbookA.open(source);
  6.                
  7.                 String jsonstr = workbookA.toJson();
  8.                
  9.                 workbookB.fromJson(jsonstr);
  10.                
  11.                 String export = "export.xlsx";
  12.                 workbookB.save(export);
复制代码
回复 使用道具 举报
EleVeN_C
注册会员   /  发表于:2020-12-25 14:41:44
5#
DerrickJiao 发表于 2020-12-25 14:13
您可以通过String jsonstr = workbook.toJson();将样式保存在ssjson中,需要加载时直接workbook.fromJson ...

模板是一个workBook  A,      展示的一个workBook B.    怎么能fromJson(A) 呢,
有一个思路是 返回给前端之前,将A.json当中的namedStyles 替换 B.json 的namedStyles
但是这样就是直接操作json了 。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-12-25 14:13:04
4#
EleVeN_C 发表于 2020-12-25 14:06
实现类似一键换肤功能。  样式统一存在一个模板当中,每次加载的时候,都从这个模板中加载样式

您可以通过String jsonstr = workbook.toJson();将样式保存在ssjson中,需要加载时直接workbook.fromJson(jsonstr);
回复 使用道具 举报
EleVeN_C
注册会员   /  发表于:2020-12-25 14:06:45
3#
ClarkPan 发表于 2020-12-25 09:51
您好:
您这么做的目的是什么呢,GcExcel支持的样式复制操作,是针对于workbook上区域的样式复制到另一个w ...

实现类似一键换肤功能。  样式统一存在一个模板当中,每次加载的时候,都从这个模板中加载样式
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-12-25 09:51:59
2#
您好:
您这么做的目的是什么呢,GcExcel支持的样式复制操作,是针对于workbook上区域的样式复制到另一个workbook上的某个区域。而不是去复制表格结构样式表中的样式。
如果是前者,可以参考
https://demo.grapecity.com.cn/do ... ngebetweenworkbooks
设置copy方法中的枚举参数为PasteType.Formats
回复 使用道具 举报
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-12-24 19:45:54
来自 8#
EleVeN_C 发表于 2020-12-25 15:11
workbookB 中有业务数据
你这样  workbookB.fromJson(jsonstr);   
那不就将workbookB 直接替换成了wo ...

目前可能没有更好的方法了,目前比较可行的是先加载样式模板再为工作簿添加业务逻辑。

这边不建议您直接修改ssjson,这样容易出现难以定位的问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部