找回密码
 立即注册

QQ登录

只需一步,快速开始

344860032
初级会员   /  发表于:2017-10-27 16:34  /   查看:5203  /  回复:7
本帖最后由 344860032 于 2017-10-31 09:09 编辑

用的10.3.1 js版本
var comboxCell = new GC.Spread.Sheets.CellTypes.ComboBox();
  comboxCell.items([{ text: "苹果", value: 0 }, { text: "梨子", value: 1 }, { text: "香蕉", value: 2 }, { text: "芒果", value: 3 }]).editable(false);
            comboxCell.editorValueType(GC.Spread.Sheets.CellTypes.EditorValueType.text);
            sheet.getCell(rowIndex, cellIndex + 3).cellType(comboxCell).value(0);
效果:
image.png36043089.png


7 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-27 18:09:26
沙发
您好,是这样的,您可以直接设置sheet.getCell(0, 0).cellType(comboxCell).value("梨子");
回复 使用道具 举报
344860032
初级会员   /  发表于:2017-10-30 08:41:21
板凳
ClarkPan 发表于 2017-10-27 18:09
您好,是这样的,您可以直接设置sheet.getCell(0, 0).cellType(comboxCell).value("梨子");

我这只是举的例子,描述这个bug,数据库字段是ID与Name,你们确认一下是不是有这个Bug,能不能修复一下。我看http://demo.gcpowertools.com.cn/ ... es/comboBoxCellType 这例子就是好的,不过JS是10.1.0版本
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-30 09:31:34
地板
您好:
例子上之所以可以是因为设置的是spreadNS.CellTypes.EditorValueType.value
您这边设置的是spreadNS.CellTypes.EditorValueType.text
所以默认显示的是text
像这样改一下您的代码:
  1. var comboxCell = new GC.Spread.Sheets.CellTypes.ComboBox();
  2. comboxCell.items([{ text: "苹果", value: 0 }, { text: "梨子", value: 1 }, { text: "香蕉", value: 2 }, { text: "芒果", value: 3 }]).editable(false);
  3. comboxCell.editorValueType(GC.Spread.Sheets.CellTypes.EditorValueType.value);
  4. sheet.getCell(0, 0).cellType(comboxCell).value(0);
复制代码
回复 使用道具 举报
344860032
初级会员   /  发表于:2017-10-30 09:33:27
5#
ClarkPan 发表于 2017-10-30 09:31
您好:
例子上之所以可以是因为设置的是spreadNS.CellTypes.EditorValueType.value
您这边设置的是spread ...

这个我上次试过了,界面上没问题,但是导出Excel的时候,单元格显示的是ID而不是名字。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-30 13:42:52
6#
您好,目前还不支持combobox导出Excel,显示内容为text这样的操作。
有一个解决方法就是导出前,遍历所有的combobox将其中的对应的text赋值给value然后导出。
回复 使用道具 举报
344860032
初级会员   /  发表于:2017-10-30 17:02:45
7#
本帖最后由 344860032 于 2017-10-30 17:05 编辑
ClarkPan 发表于 2017-10-30 13:42
您好,目前还不支持combobox导出Excel,显示内容为text这样的操作。
有一个解决方法就是导出前,遍历所有 ...

哎,我在研究一下吧,我需要把Excel的下拉框ID保存到数据库,然后还要支持用户导出,editorValueType(GC.Spread.Sheets.CellTypes.EditorValueType.value)这个设置,导致这个两个操作有冲突。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-30 17:32:23
8#
我记得之前给您说过tempspread对象的生成方法,您可以用户点击导出后,生成一个tempspread的对象,该对象是目前页面显示的spread对象的克隆,在tempspread对象中遍历所有的combobox将其中的对应的text赋值给value然后导出tempspread对象。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部