找回密码
 立即注册

QQ登录

只需一步,快速开始

YSX

注册会员

9

主题

23

帖子

68

积分

注册会员

积分
68
YSX
注册会员   /  发表于:2022-11-24 17:05  /   查看:1798  /  回复:9
本帖最后由 YSX 于 2022-11-24 17:08 编辑

gcexcel 在读入鞋油echart配置的ssjson之后,echart的相关图表全部丢失。


String ssjson = Files.readString(Path.of("C:\\Users\\shuxing\\Desktop\\demo1.ssjson"));
Workbook workbook = new Workbook();
workbook.fromJson(ssjson);
workbook.toJson(new FileOutputStream("C:\\Users\\shuxing\\Desktop\\mode1_out.ssjson"));

demo1.zip

8.51 KB, 下载次数: 51

9 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-24 17:56:28
沙发
您好,
您指的”echart配置丢失“具体是什么呢?请结合图片等资料详细描述下,以便对比复现。

回复 使用道具 举报
YSX
注册会员   /  发表于:2022-11-24 18:05:41
板凳
image.png799087524.png image.png400314025.png
回复 使用道具 举报
YSX
注册会员   /  发表于:2022-11-24 18:08:45
地板
附件是导入导出的两个文件


image.png121816100.png

mode1_out.zip

16.65 KB, 下载次数: 48

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-25 09:51:37
5#
本帖最后由 Lynn.Dou 于 2022-11-25 09:53 编辑

SpreadJS之所以可以显示echarts的图表,是因为您项目中引入了echarts的资源,并结合浮动元素最终实现了绘制。
导入导出的json不会包含echarts的配置,所以在经GcExcel导入导出json后,需要重新对echarts绘制。
(您可以试下将demo中的两个json文件分别导入至官网组件版设计器,会发现显示是一样的,均未显示echarts)
您检查下代码,看对于GcExcel导出的json是否有做echarts的重绘。
可以参考下这篇帖子回复:
https://gcdn.grapecity.com.cn/fo ... 52667&fromuid=59119
image.png132118529.png


回复 使用道具 举报
YSX
注册会员   /  发表于:2022-11-25 09:57:20
6#
Lynn.Dou 发表于 2022-11-25 09:51
SpreadJS之所以可以显示echarts的图表,是因为您项目中引入了echarts的资源,并结合浮动元素最终实现了绘制 ...

明白了,就是gcexcel导入导出不包含配置。有没有可能说,echart的相关配置和浮动对象这些内容,导入导出不被过滤掉呢,未来的版本有考虑处理吗?echart的配置可以理解为外部数据存储到ssjson里面,通过spreadjs+echarts前端驱动渲染。导入导出可以不过滤掉echarts的配置,两者是不矛盾的。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-25 16:23:00
7#
在另一个贴中有提到,对于dom实现的浮动元素,SpreadJS导入导出是可以保留的。
但是echarts走的canvas的绘制机制,只是保存了数据模型,如果想显示就需要重绘。
回复 使用道具 举报
YSX
注册会员   /  发表于:2022-11-25 16:39:14
8#
Lynn.Dou 发表于 2022-11-25 16:23
在另一个贴中有提到,对于dom实现的浮动元素,SpreadJS导入导出是可以保留的。
但是echarts走的canvas的绘 ...

单独走spreadjs这个逻辑是没问题的,我们也验证过。我们想借助gc {{}}模板的上数能力,让上数的灵活性更高
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-25 18:11:48
9#
前面提到了,canvas存储的是数据模型,SpreadJS所做的是借助事件等让echarts做了重绘,这些配置并不是一些可以存储在json的数据。GcExcel导入导出的json自然也无法带着这些配置信息,建议您按照前面建议的方案,在加载GcExcel导出的json后,对echarts做重绘以实现您的需求。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-6 12:13:34
10#
经调研,对比您原始文件,注意到经GcExcel导入导出后,floatingObject丢失了,如下图:
25caa9c9cc5868628d901a18c4afb58.png302063292.png
如果您贴中描述指的是此问题,那么经测试该问题已在GcExcel V6.0.3修复了,即GcExcel导出后floatingObject仍会保留。
附件为测试导出的文件,供参考。

demo1_after.ssjson

529.91 KB, 下载次数: 40

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部