找回密码
 立即注册

QQ登录

只需一步,快速开始

hongshanshan SpreadJS 开发认证
高级会员   /  发表于:2021-7-28 15:17  /   查看:3156  /  回复:14
【14.1.1】

直接导入文件,条件格式没问题,文档正常显示,
但是excel sheet【DataSource】显示的内容实际上是从数据库动态拿出来的,
一旦使用了sheet.setDataSource(data),条件格式就只有一个颜色了。

image.png513157348.png   =》 image.png629384460.png

代码:
excelIO.open(this.excelFile, function (json) {
        self.spread.fromJSON(json)
               
                const data = [{ ID: 'FP752', Name: '零件名称FP752', N0: '92', N1: '82'},
        { ID: 'FP752', Name: '零件名称FP752', N0: '0.3', N1: '0.4' },
        { ID: 'FP753', Name: '零件名称FP753', N0: '55', N1: '66' },
        { ID: 'FP753', Name: '零件名称FP753', N0: '0.5', N1: '1.4' }]

      var sheet = spread.getSheetFromName('DataSource')
      if (sheet) {
             sheet.setDataSource(data)
      }
})


showalltest.rar

8.27 KB, 下载次数: 54

14 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-11 09:45:36
推荐
经调研,此问题是由于值的类型发生改变而引起的。如下图,绑定数据源后,单元格的值由 数值 变成了 字符串。
image.png147828978.png

将代码修改为以下即可:
  1. const data = [{ ID: 'FP752', Name: '零件名称FP752', N0: 92, N1: 82},
  2.         { ID: 'FP752', Name: '零件名称FP752', N0: 0.3, N1: 0.4 },
  3.         { ID: 'FP753', Name: '零件名称FP753', N0: 55, N1: 66 },
  4.         { ID: 'FP753', Name: '零件名称FP753', N0: 0.5, N1: 1.4 }]

  5.       var sheet = spread.getSheetFromName('DataSource')
  6.       if (sheet) {
  7.              sheet.setDataSource(data)
  8.       }
复制代码


回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-7-28 18:22:21
沙发
您好,
问题已复现,已将此问题记录下来,待有进展会在贴中更新,
本贴先做保留处理。
回复 使用道具 举报
hongshanshanSpreadJS 开发认证
高级会员   /  发表于:2021-7-29 15:45:09
板凳
Lynn.Dou 发表于 2021-7-28 18:22
您好,
问题已复现,已将此问题记录下来,待有进展会在贴中更新,
本贴先做保留处理。

条件格式,本来还显示蓝色,如果代码在最后面给它增加列,就只剩白色了,不知道是不是同一个问题,还是两个问题?
回复 使用道具 举报
hongshanshanSpreadJS 开发认证
高级会员   /  发表于:2021-7-29 15:47:30
地板
Lynn.Dou 发表于 2021-7-28 18:22
您好,
问题已复现,已将此问题记录下来,待有进展会在贴中更新,
本贴先做保留处理。

哦,说错了,是在最后面增加了两列,并在这两列上建了一个table,设值后,变白色了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-7-29 15:56:42
5#
hongshanshan 发表于 2021-7-29 15:47
哦,说错了,是在最后面增加了两列,并在这两列上建了一个table,设值后,变白色了

没太理解这个操作,能否截个图或者录个视频说明下
回复 使用道具 举报
hongshanshanSpreadJS 开发认证
高级会员   /  发表于:2021-7-29 16:21:59
6#
代码上增加了两列隐藏列,然后做表格
excelIO.open(this.excelFile, function (json) {
        self.spread.fromJSON(json)
               
                const data = [{ ID: 'FP752', Name: '零件名称FP752', N0: '92', N1: '82'},
        { ID: 'FP752', Name: '零件名称FP752', N0: '0.3', N1: '0.4' },
        { ID: 'FP753', Name: '零件名称FP753', N0: '55', N1: '66' },
        { ID: 'FP753', Name: '零件名称FP753', N0: '0.5', N1: '1.4' }]

      var sheet = spread.getSheetFromName('DataSource')
      if (sheet) {
             sheet.setDataSource(data)
      }
          
          // 增加两列隐藏列,用于做切片器的表格
        const columnCount = sheet.getColumnCount();
        sheet.addColumns(columnCount + 1, 2);
        sheet.setColumnVisible(columnCount,false,GC.Spread.Sheets.SheetArea.viewport);
        sheet.setColumnVisible(columnCount + 1,false,GC.Spread.Sheets.SheetArea.viewport);
       
        // create table
        var table = sheet.tables.add('tableItems', 4, 21, 1, 2);
        table.allowAutoExpand(true);
        var tableColumn1 = new GC.Spread.Sheets.Tables.TableColumn(1, "buffModel", "缓冲管理模式");
        var tableColumn2 = new GC.Spread.Sheets.Tables.TableColumn(2, "bufferConfig", "缓冲配置");
        table.autoGenerateColumns(false);
       
        var data = {};
        data.items = {items:[{buffModel:'1',bufferConfig:"2"},{buffModel:'3',bufferConfig:"4"}]};
        table.bind([tableColumn1, tableColumn2], 'items', data);

})
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-7-29 17:32:29
7#
这边使用您提供的代码测试,报错如下: image.png851626891.png
为了更快的复现此问题,建议您直接提供一个正确可复现此问题的demo,
附件为demo模板,您可以在demo基础上添加自己的代码。

模板.zip

2.75 MB, 下载次数: 50

回复 使用道具 举报
hongshanshanSpreadJS 开发认证
高级会员   /  发表于:2021-7-30 12:12:22
8#
var table = sheet.tables.add('tableItems', 4, 21, 1, 2);
把这一行的代码改一下,我实际的模板有很多列,给的测试版本没有那么多列
大概是var table = sheet.tables.add('tableItems', 3, 4, 1, 2);
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-7-30 15:22:04
9#
本帖最后由 Lynn.Dou 于 2021-7-30 15:23 编辑

如动图所示,将代码修改后,再次测试,
根据测试结果仍未理解您描述的 “设值后,变白色了”是什么意思,
能否结合图片详细说明下效果。
请直接提供一个能复现此问题的demo,
或者在 在线表格编辑器基础上,详细描述能复现此问题的操作步骤。



1.gif
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-9 11:36:02
10#
请问如何复现您描述的这个问题呢?
还请详细描述清楚,便于这边将此问题及时反馈研发调研。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部