找回密码
 立即注册

QQ登录

只需一步,快速开始

sanyue
初级会员   /  发表于:2022-8-31 11:29  /   查看:2922  /  回复:22
1金币
spread.fromjson导入的页面sheet单元格写内容,点其他单元格的时候写的内容不显示,该单元格再次双击才显示,怎么解决?

最佳答案

查看完整内容

您不应该将复杂的 javascript 对象缓存到全局 vue3 变量,vue3 将使用代理包装该对象,这将破坏 javascript 对象的生命周期。 您可以缓存设计器宿主 DIV 元素或 Div ID,一旦您想要获取设计器实例,只需调用 findControl 方法即可。 GC.Spread.Sheets.Designer.findControl(this.designer_host); 具体看下面代码可以实现单元格内容正常显示。

22 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-8-31 11:29:44
来自 23#
您不应该将复杂的 javascript 对象缓存到全局 vue3 变量,vue3 将使用代理包装该对象,这将破坏 javascript 对象的生命周期。

您可以缓存设计器宿主 DIV 元素或 Div ID,一旦您想要获取设计器实例,只需调用 findControl 方法即可。

GC.Spread.Sheets.Designer.findControl(this.designer_host);


具体看下面代码可以实现单元格内容正常显示。

image.png595758056.png
image.png420495910.png

App.vue

6.15 KB, 下载次数: 46

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-8-31 17:05:15
2#
请提供下导入的json文件。
回复 使用道具 举报
sanyue
初级会员   /  发表于:2022-8-31 17:14:30
3#
Ellia.Duan 发表于 2022-8-31 17:05
请提供下导入的json文件。
  1. {"version":"15.1.4","sheetCount":1,"customList":[],"sheets":{"Sheet1":{"name":"Sheet1","isSelected":true,"columnCount":26,"activeRow":4,"activeCol":5,"visible":1,"frozenTrailingRowStickToEdge":true,"frozenTrailingColumnStickToEdge":true,"theme":"Office","data":{"dataTable":{"2":{"5":{"value":"6"}},"3":{"5":{"value":"6"}},"4":{"5":{"value":"6"}}},"columnDataArray":[{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}},{"style":{"formatter":"@"}}],"defaultDataNode":{"style":{"themeFont":"Body"}}},"rowHeaderData":{"defaultDataNode":{"style":{"themeFont":"Body"}}},"colHeaderData":{"defaultDataNode":{"style":{"themeFont":"Body"}}},"leftCellIndex":0,"topCellIndex":0,"selections":{"0":{"row":4,"rowCount":1,"col":5,"colCount":1},"length":1},"rowOutlines":{"items":[]},"columnOutlines":{"items":[]},"cellStates":{},"states":{},"outlineColumnOptions":{},"autoMergeRangeInfos":[],"shapeCollectionOption":{"snapMode":0},"printInfo":{"paperSize":{"width":850,"height":1100,"kind":1},"watermark":[]},"index":0}},"sheetTabCount":0}
复制代码
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-8-31 17:28:16
4#
根据您提供的代码,这边的测试代码是
  1. window.onload = function () {
  2.         var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {sheetCount: 2});
  3.         spread.fromJSON(json)
  4.     }
复制代码
但是并未复现您说的问题。
有可能是其他代码影响了显示效果,请提供一份完整的可以复现问题的demo
测试.gif
回复 使用道具 举报
sanyue
初级会员   /  发表于:2022-8-31 17:35:36
5#
Ellia.Duan 发表于 2022-8-31 17:28
根据您提供的代码,这边的测试代码是但是并未复现您说的问题。
有可能是其他代码影响了显示效果,请提供一 ...

是vue项目,不是html那种
回复 使用道具 举报
sanyue
初级会员   /  发表于:2022-8-31 17:41:39
6#
Ellia.Duan 发表于 2022-8-31 17:28
根据您提供的代码,这边的测试代码是但是并未复现您说的问题。
有可能是其他代码影响了显示效果,请提供一 ...

image.png589292602.png
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-8-31 17:53:52
7#

在Vue框架中使用在线表格编辑器,可以参考我上传附件中的代码,使用组件来初始化。
  1. <div id="gc-designer-container">
  2.     <gc-spread-sheets-designer
  3.         :styleInfo="styleInfo"
  4.         :config="config"
  5.         :spreadOptions="spreadOptions"
  6.         @designerInitialized="designerInitialized"/>
  7.   </div>
  8.   methods: {
  9.     designerInitialized(designer) {
  10.       this.designer = designer;
  11.       this.spread = designer.getWorkbook()
  12.       
  13.       this.spread.fromJSON(json);
  14.     },

  15.   },
复制代码


index.vue

3.72 KB, 下载次数: 49

回复 使用道具 举报
sanyue
初级会员   /  发表于:2022-8-31 18:00:19
8#
Ellia.Duan 发表于 2022-8-31 17:53
在Vue框架中使用在线表格编辑器,可以参考我上传附件中的代码,使用组件来初始化。

所以这个问题怎么解决呢
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-8-31 18:11:22
9#
sanyue 发表于 2022-8-31 18:00
所以这个问题怎么解决呢

您的代码写法有点问题,换成我附件中的demo还是没有解决问题吗?
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部