找回密码
 立即注册

QQ登录

只需一步,快速开始

初一呀
初级会员   /  发表于:2021-8-30 11:10  /   查看:3242  /  回复:10
1金币
if (item == null) {
        style.name = "success";
        style.backColor = "lightgreen";
        sheet.addNamedStyle(style);
        sheet.setStyle(row, col, style, null);

      } else {
        sheet.removeNamedStyle('success');
        style.name = "error";
        style.backColor = "red";
        sheet.setStyle(item.row, item.col, style, null);
        let styleName = sheet.getStyleName(row, col, GC.Spread.Sheets.SheetArea.viewport);
        console.log(styleName, 'styleName');
      }


      sheet.removeNamedStyle('success');   这行代码没有去掉上面的设置的颜色,想去掉上面的颜色设置成红色



最佳答案

查看完整内容

由您提供的信息这边未能复现您的问题,如需重新设置命名样式,可以参考附件的demo

10 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-8-30 11:10:16
来自 9#

由您提供的信息这边未能复现您的问题,如需重新设置命名样式,可以参考附件的demo
image.png973503723.png

inandout.html

2.19 KB, 下载次数: 61

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-8-30 11:41:29
2#
您可以用clear方法清除样式后再重新设置,例如
sheet.clear(0,0,1,1,GC.Spread.Sheets.SheetArea.viewport,GC.Spread.Sheets.StorageType.style);

这是api
https://demo.grapecity.com.cn/sp ... orksheet.html#clear

若仍未解决您的问题建议您提供一个能复现问题的demo,这边调研一下。
回复 使用道具 举报
初一呀
初级会员   /  发表于:2021-8-30 12:01:02
3#
Derrick.Jiao 发表于 2021-8-30 11:41
您可以用clear方法清除样式后再重新设置,例如
sheet.clear(0,0,1,1,GC.Spread.Sheets.SheetArea.viewport ...

非常感谢解答,这个APi能清除指定单元格的数据,就是清除 不了指定单元格的背景颜色
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-8-30 12:03:08
4#
初一呀 发表于 2021-8-30 12:01
非常感谢解答,这个APi能清除指定单元格的数据,就是清除 不了指定单元格的背景颜色

您需要指定清除的类型
image.png324934081.png
回复 使用道具 举报
初一呀
初级会员   /  发表于:2021-8-30 12:59:47
5#
image.png284630736.png
就是没有去除掉这里的颜色
image.png641952819.png
回复 使用道具 举报
初一呀
初级会员   /  发表于:2021-8-30 13:07:12
6#
image.png113084715.png
这段代码注销之后设置的颜色就显示出来了 image.png866551818.png
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-8-30 13:33:39
7#
初一呀 发表于 2021-8-30 13:07
这段代码注销之后设置的颜色就显示出来了

麻烦您在附件的demo复现您的问题并且详细描述您的需求,这边为您调研一下。

inandout.html

1.28 KB, 下载次数: 58

回复 使用道具 举报
初一呀
初级会员   /  发表于:2021-8-30 13:59:25
8#
  1. <head>
  2.     <meta charset="UTF-8" />
  3.     <link
  4.         rel="stylesheet" type="text/css" />

  5.     <script src="http://cdn.grapecity.com/spreadjs/hosted/scripts/gc.spread.sheets.all.14.1.5.min.js"></script>
  6.     <script src="http://cdn.grapecity.com/spreadjs/hosted/scripts/interop/gc.spread.excelio.14.1.5.min.js"></script>
  7.     <script src="https://cdn.grapecity.com.cn/spreadjs/scripts/jquery-1.11.1.min.js" type="text/javascript"></script>
  8.     <style>
  9.         .sample-tutorial {
  10.             position: relative;
  11.             height: 100%;
  12.             overflow: hidden;
  13.         }

  14.         .sample-spreadsheets {
  15.             width: calc(100% - 280px);
  16.             height: 90%;
  17.             overflow: hidden;
  18.             float: left;
  19.             position: relative;
  20.         }

  21.         .gc-drop-down-list {

  22.             background: red;
  23.         }
  24.     </style>
  25. </head>

  26. <body>

  27.     <div id="ss" class="sample-spreadsheets"></div>

  28.     <script>
  29.         var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {
  30.             sheetCount: 1
  31.         });
  32.         var sheet = spread.getActiveSheet();
  33.         /**
  34.         数据都是从后台获取的,不是很好复现
  35.         data:[{
  36.             row:1,
  37.             col:1
  38.         },{
  39.         row:1,
  40.         col:1
  41.         },{
  42.         row:3,
  43.         col:1
  44.         }]

  45.         首先:刷新页面的时候,后端返回的数据如果excel中存在,就将excel中有此数据的单元格的背景色设置成绿色

  46.         如果后端返回第一项的数据和第二项的数据一样,就将excel相应位置的背景色设置成红色
  47.         */


  48.         // 1.将row:1,row:2这两列设置成红色
  49.         var style = new GC.Spread.Sheets.Style();
  50.         style.backColor = 'red';
  51.         // style.backColor = 'blue';
  52.         sheet.setStyle(1, 1, style, GC.Spread.Sheets.SheetArea.viewport);
  53.         sheet.setStyle(3, 1, style, GC.Spread.Sheets.SheetArea.viewport);
  54.         //2.由于row:1存在重复数据,所以需要将row:1,这项单元格再设置成其他颜色
  55.         // sheet.setStyle(1, 1, style.backColor = 'blue', GC.Spread.Sheets.SheetArea.viewport);
  56.     </script>
  57. </body>

  58. </html>
复制代码
回复 使用道具 举报
初一呀
初级会员   /  发表于:2021-8-30 17:13:52
10#
非常感谢您的解答,问题已经解决了,谢谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部