找回密码
 立即注册

QQ登录

只需一步,快速开始

zzzfff
金牌服务用户   /  发表于:2023-3-30 13:10  /   查看:1309  /  回复:5
本帖最后由 Richard.Ma 于 2023-3-31 09:49 编辑

前端通过floatingObject创建浮动元素,后端Gcexcel通过sheet.getShapes读取不到该元素,在5.1.4版本能读取到

excel__853__1393.ssjson.json

2.37 KB, 下载次数: 122

5 个回复

倒序浏览
zjc
注册会员   /  发表于:2023-3-30 15:17:45
沙发

ssjson文件:
  1. {"version":"15.2.5","sheetCount":1,"allowExtendPasteRange":true,"customList":[],"sheets":{"Sheet1":{"name":"Sheet1","isSelected":true,"columnCount":52,"activeRow":3,"visible":1,"frozenTrailingRowStickToEdge":true,"frozenTrailingColumnStickToEdge":true,"theme":"Office","data":{"defaultDataNode":{"style":{"themeFont":"Body"}}},"rowHeaderData":{"defaultDataNode":{"style":{"themeFont":"Body"}}},"colHeaderData":{"defaultDataNode":{"style":{"themeFont":"Body"}}},"leftCellIndex":0,"topCellIndex":0,"selections":{"activeSelectedRangeIndex":-1,"length":0},"rowOutlines":{"items":[]},"columnOutlines":{"items":[]},"floatingObjects":[{"name":"bind$3$0-l3B0OHZtPat","y":60,"width":310,"height":140,"startRow":3,"startColumn":0,"endRow":10,"endColumn":5,"isSelected":true,"allowResize":false,"allowMove":false,"typeName":"0","content":"<div class="ss-cell-init-container ss-cell-container-hover">\n        <div class="ss-cell-content" data-uuid="bind$3$0-l3B0OHZtPat" onmousemove="event.stopPropagation();" onclick="_cellModalClick(this);">\n          <div>\n            <i class="readata-iconfont readata-icon-zhengque"></i>\n            <span>数据已经绑定</span>\n          </div>\n          <div class="ss-cell-tip">该区域范围仅做展示使用,真实情况以执行结果为主</div>\n          <div class="ss-cell-operate-container">\n            <i class="readata-iconfont readata-icon-copy" title="复制" data-uuid="bind$3$0-l3B0OHZtPat" onclick="_cellBindingOperate(this);"></i>\n            <i class="readata-iconfont readata-icon-jianqie" title="剪切" data-uuid="bind$3$0-l3B0OHZtPat" onclick="_cellBindingOperate(this)"></i>\n            <i class="readata-iconfont readata-icon-trash" title="删除" data-uuid="bind$3$0-l3B0OHZtPat" onclick="_cellBindingDel(this)"></i>\n            <i class="readata-iconfont readata-icon-sqltubiao" title="查看sql" data-uuid="bind$3$0-l3B0OHZtPat" onclick="_cellBindingOperate(this)"></i>\n          </div>\n        </div>\n        </div>"}],"cellStates":{},"states":{},"outlineColumnOptions":{},"autoMergeRangeInfos":[],"shapeCollectionOption":{"snapMode":0},"names":[{"name":"bind__3__0_l3B0OHZtPat","formula":"Sheet1!$A$4","row":3,"col":0,"comment":"【&#9888;&#65039;勿改】请勿修改此处名称和引用位置。"}],"printInfo":{"paperSize":{"width":850,"height":1100,"kind":1}},"index":0}},"sheetTabCount":0,"pivotCaches":{}}
复制代码


测试代码:



  1. public void test03() throws FileNotFoundException {
  2.    Workbook workbook = new Workbook();
  3.    workbook.fromJson(new FileInputStream("excel__853__1393.json"));
  4.    IWorksheet activeSheet = workbook.getActiveSheet();
  5.    System.out.println(activeSheet.getName());
  6.    int count = activeSheet.getShapes().getCount();
  7.    System.out.println("shape count: " + count);
  8.     }
复制代码




回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-30 16:50:28
板凳
请上传一个json文件上来,我再验证一下,这个json字符串一些字符已经 被转义了

gcexcel和excel建议同步升级。否则可能确实会有这种情况。因为一些产品功能的变更两个产品会同步变化。gcexcel没有办法去支持老版本的spreadjs中一些元素。
回复 使用道具 举报
zzzfff
金牌服务用户   /  发表于:2023-3-30 17:38:56
地板
Richard.Ma 发表于 2023-3-30 16:50
请上传一个json文件上来,我再验证一下,这个json字符串一些字符已经 被转义了

gcexcel和excel建议同步 ...

GcExcel6.X 要对应spreadjs 16.x?当前16版本有bug,而且GcExcel不支持16的新格式,两个产品跨版本升级有问题,我们希望能兼容一下
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-31 09:50:08
5#
目前这个问题我报给了研发,先确认一下是否有其他的解决办法。然后你给回复。帖子暂时保留处理
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-4-3 16:49:56
6#
你好,经确认GCExcel在老版本中本身也是不支持除图片以外 的浮动对象元素。

老版本中因为spreadjs的图片是以浮动对象显示的,所以GCExcel只对这个做了支持,可以识别转换为shape(能通过gcexcel的shape接口获取到其他类型的浮动对象,这个算是产品的漏洞,并不是本身的功能)

新版本中由于spreadjs本身也以shape来显示图片了, 所以gcexcel就彻底不支持浮动对象了,也造成你看到的新版本中识别不出你定义的浮动元素了,相当于只是此前的漏洞没有了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部