请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

cgh_chen

初级会员

47

主题

182

帖子

471

积分

初级会员

积分
471

活字格认证微信认证勋章

[已处理] V10前端Excel导出

cgh_chen
初级会员   /  发表于:2016-12-8 10:15  /   查看:3023  /  回复:8
(1)下拉选项, 输出的是: Value不是Text;不合理;和编辑时不一致;
(2)下拉选项所在单元格,SpreadJS里面有边框,导出后,没有边框。

8 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-8 10:44:27
沙发
您好,第一点现在产品设计是这样的,关于CheckBox以及comboxbox等这样的excel中没有的类型,导出后都是value。
第二点,我没有重现出来,给comboboxcell 设置边框导出是有边框的。可否提供下代码或者spread的json
回复 使用道具 举报
cgh_chen
初级会员   /  发表于:2016-12-8 10:52:02
板凳
我们应该是给单元格设置边框。 控件类型为combobox吧
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-8 11:34:52
地板
嗯,我也是单元格类型是combo,单元格设置了边框,导出没有问题
回复 使用道具 举报
cgh_chen
初级会员   /  发表于:2016-12-12 16:01:35
5#
导出:单元格的style 有 parentName, 边框设置在parentName对应的style里面。 这种情况没有边框
页面显示正常。
请下拉框,导出文本, 尽快提供。谢谢

评分

参与人数 1金币 +500 收起 理由
dexteryao + 500 发现 bug 223180

查看全部评分

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-12 17:21:15
6#
明白了,您是用了namedStyle。我这里再测试一下。

下拉到处文本现在的方案只能是在到处前设置所有的comob 为text。然后再导出,我稍后一起给您个demo吧。
回复 使用道具 举报
cgh_chen
初级会员   /  发表于:2016-12-13 21:13:54
7#
这样影响速度吧。 demo怎么写?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-14 14:26:11
8#
边框问题确认是个bug,已经提交了
到处参考下面代码,新建了一个没有dom的spread对象,主要是数据操作,性能不会有很大影响的。

  1.             $("#saveExcel").click(function () {

  2.                 var fileName = $("#exportFileName").val();
  3.                 var password = $("#password").val();
  4.                 if (fileName.substr(-5, 5) !== '.xlsx') {
  5.                     fileName += '.xlsx';
  6.                 }

  7.                 var jsonString = JSON.stringify(spread.toJSON());

  8.                 var tempSpread = new GC.Spread.Sheets.Workbook();
  9.                 tempSpread.fromJSON(JSON.parse(jsonString));
  10.                 for(var i = 0; i < tempSpread.getSheetCount(); i++){
  11.                     var sheet = tempSpread.sheets[i];
  12.                     for(var row = 0; row < sheet.getRowCount(); row++){
  13.                         for(var col = 0; col < sheet.getColumnCount(); col++){

  14.                             var cell = sheet.getCell(row, col);
  15.                             var cellType = cell.cellType();
  16.                             if(cellType && (cellType instanceof GC.Spread.Sheets.CellTypes.ComboBox)){
  17.                                 var value = sheet.getValue(row, col), items = comboBoxCellType.items();
  18.                                 if(value !== null && value !== undefined && items && items.length > 0){
  19.                                     cellType.editorValueType(GC.Spread.Sheets.CellTypes.EditorValueType.text);
  20.                                     cell.cellType(comboBoxCellType);
  21.                                     for(var item in items){
  22.                                         if(items[item].value === value){
  23.                                             sheet.setValue(row, col, items[item].text);
  24.                                             break;
  25.                                         }
  26.                                     }
  27.                                 }
  28.                             }
  29.                         }
  30.                     }
  31.                 }
  32.                 var json = tempSpread.toJSON();
  33.                 // here is excel IO API
  34.                 excelIo.save(json, function (blob) {
  35.                     saveAs(blob, fileName);
  36.                 }, function (e) {
  37.                     // process error
  38.                     console.log(e);
  39.                 }, {password: password});

  40.             });
复制代码
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-27 11:34:33
9#
您好  nameStyle 中 parentName 的问题已修复,请使用V10 SP1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部