找回密码
 立即注册

QQ登录

只需一步,快速开始

xujie-joe
金牌服务用户   /  发表于:2023-1-5 17:11  /   查看:5105  /  回复:15
1金币
本帖最后由 Ellia.Duan 于 2023-1-9 12:09 编辑

SpreadJS使用CheckBoxList勾选的时候崩溃


刚开始加载如下:
image.png717906799.png
点一下勾选框,这个sheet就崩溃了,一片白,这个sheet是有什么特殊吗?
image.png565364379.png

ssjson如附件,
代码并没有什么特殊,如下

  1. const spread = this.designer.getWorkbook();
  2.     const sheetCount = spread.getSheetCount();
  3.     for (let i = 0; i < sheetCount; i++) {
  4.       const sheet = spread.getSheet(i);
  5.       const sheetName: string = sheet.name();

  6.        const radio = new GC.Spread.Sheets.CellTypes.CheckBoxList();
  7.         radio.items([
  8.           { text: "样件", value: "1" },
  9.           { text: "试生产", value: "2" },
  10.           { text: "生产", value: "3" },
  11.         ]);

  12.         sheet.setValue(2, 0, "项目阶段:");
  13.         sheet.setCellType(2,3,radio);

  14.       
复制代码




gongyi.ssjson

298.87 KB, 下载次数: 1076

15 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-5 17:43:32
沙发
您好,执行您给的代码后,可以正常运行,并没有能复现出您给的ssjosn文件两个sheet,其中第二个sheet出现问题的场景。
请给出可以复现问题的demo。(导出为您给的ssjson的相关代码)
回复 使用道具 举报
xujie-joe
金牌服务用户   /  发表于:2023-1-5 17:56:54
板凳
Ellia.Duan 发表于 2023-1-5 17:43
您好,执行您给的代码后,可以正常运行,并没有能复现出您给的ssjosn文件两个sheet,其中第二个sheet出现问 ...

我这代码比较复杂,你可以直接把附件的ssjson加载到SpreadJS中,然后去点第二个sheet的勾选框,会复现
回复 使用道具 举报
xujie-joe
金牌服务用户   /  发表于:2023-1-5 18:01:05
地板
我这的操作流程是:SpreadJS导入了一个本地的Excel,然后保存的时候,对固定位置设置了勾选框,应该是本地的Excel有什么特殊格式,导致插入复选框后,勾选有问题
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-5 18:40:42
5#
好的,这边需要深入调研下您的原因,有进展及时通知您。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-6 10:16:24
6#
xujie-joe 发表于 2023-1-5 18:01
我这的操作流程是:SpreadJS导入了一个本地的Excel,然后保存的时候,对固定位置设置了勾选框,应该是本地 ...

您好,根据您的ssjson发现您这边第二个sheet 行数是四百多行,但是列数上万个,
image.png401613158.png
还是请您上传下您的本地excel文件,这边通过excel文件再看下是不是有什么特殊格式。
然后您这边是通过UI方式在spreadJS中固定位置设置了勾选框,还是通过代码方式设置了勾选框?
回复 使用道具 举报
xujie-joe
金牌服务用户   /  发表于:2023-1-6 13:49:01
7#
如附件Excel,

操作流程如图:
image.png948095092.png
暂存的代码很简单:
  1. save() {

  2.     const spread = this.designer.getWorkbook();
  3.     const sheetCount = spread.getSheetCount();
  4.     for (let i = 0; i < sheetCount; i++) {
  5.       const sheet = spread.getSheet(i);
  6.       const sheetName: string = sheet.name();

  7.       const radio = new GC.Spread.Sheets.CellTypes.CheckBoxList();
  8.       radio.items([
  9.         {text: "样件", value: "1"},
  10.         {text: "试生产", value: "2"},
  11.         {text: "生产", value: "3"},
  12.       ]);

  13.       sheet.setValue(2, 0, "项目阶段:");
  14.       sheet.setCellType(2, 3, radio);
  15.     }

  16.     return;

  17.     this.saveLoading = true;


  18.   }
复制代码


checkboxlist.xlsx

40.5 KB, 下载次数: 1053

回复 使用道具 举报
xujie-joe
金牌服务用户   /  发表于:2023-1-6 13:50:33
8#
并没有很多列 image.png994591979.png
回复 使用道具 举报
xujie-joe
金牌服务用户   /  发表于:2023-1-6 13:50:57
9#
Ellia.Duan 发表于 2023-1-6 10:16
您好,根据您的ssjson发现您这边第二个sheet 行数是四百多行,但是列数上万个,

还是请您上传下您的本 ...

如下楼层回复
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-1-6 18:27:23
10#
此问题已复现,这边将深入调查下原因,本帖将置为保留处理。待有进展及时通知您。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部