找回密码
 立即注册

QQ登录

只需一步,快速开始

harryhxs

金牌服务用户

29

主题

86

帖子

249

积分

金牌服务用户

积分
249
harryhxs
金牌服务用户   /  发表于:2020-5-11 14:48  /   查看:4292  /  回复:8
for (let colIndex = startIndex; colIndex < endeIndex; colIndex++) {
        for (let rowIndex = startRow; rowIndex < rowCount; rowIndex++) {
          if (rowIndex % 2 === 0) {
            sheet.setStyle(rowIndex, colIndex, stripStyle1)
          } else {
            sheet.setStyle(rowIndex, colIndex, stripStyle2)
          }
        }
      }


sheet.getRange(startRow, start, 2, 2).formatter('#,##0')


我先设置了斑马线,然后在设置的fomatter, 虽然我只设置了4个cell的formatter,但是整个斑马线区域内的cell都被设置了formatter。

还有一个问题,如果先设置formatter,后设置斑马线,formatter不生效。不知道是不是被setStyle覆盖了
image.png438200377.png
image.png59820250.png

8 个回复

倒序浏览
Fiooona
论坛元老   /  发表于:2020-5-11 18:48:06
沙发
可以提供一个完整能复现的 Demo ?听描述应该是你在 stripStyle1上添加了 formatter 就被影响了,可以new 一个style, 在新的style上设置formatter
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
harryhxs
金牌服务用户   /  发表于:2020-5-12 10:37:04
板凳
我没有在stripStyle1上设置formatter,我仅仅是用getRange().formatter, 但是这个区域,已经设置了斑马线
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-5-12 18:39:55
地板
本帖最后由 Fiooona 于 2020-5-13 11:03 编辑

问题已复现,需要进一步调研,暂时改为保留处理(4335)
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
harryhxs
金牌服务用户   /  发表于:2020-5-13 16:40:18
5#
这个问题我找到解决方法就是,在设置斑马线只设置一种颜色,另一种颜色为默认sheet颜色白色,这样就不会冲突
image.png926432800.png

评分

参与人数 1金币 +333 收起 理由
Fiooona + 333

查看全部评分

回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-5-13 18:06:46
6#
感谢您的反馈
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-5-18 12:05:05
7#
您好,用 named style的也方式可以实现您的需求:将代码进行如下修改也可以解决您的问题:
  1.   var stripStyle1 = new GC.Spread.Sheets.Style();
  2.             stripStyle1.backColor = 'red';
  3.             stripStyle1.foreColor = 'blue';
  4.             stripStyle1.name = "stripStyle";
  5.             sheet.addNamedStyle(stripStyle1);
  6.             for (let colIndex = 0; colIndex < 10; colIndex++) {
  7.                 for (let rowIndex = 0; rowIndex < 20; rowIndex++) {
  8.                     if (rowIndex % 2 === 0) {
  9.                         sheet.setStyleName(rowIndex, colIndex, "stripStyle");
  10.                     }
  11.                     else {     ......    // 类似的实现方式}
  12.                 }
  13.             }            sheet.getCell(0, 0).formatter('#,##0');
复制代码



或者使用style.clone
  1.   var stripStyle1 = new GC.Spread.Sheets.Style();
  2.             stripStyle1.backColor = 'red';
  3.             stripStyle1.foreColor = 'blue';
  4.             for (let colIndex = 0; colIndex < 10; colIndex++) {
  5.                 for (let rowIndex = 0; rowIndex < 20; rowIndex++) {
  6.                     if (rowIndex % 2 === 0) {
  7.                         sheet.setStyle(rowIndex, colIndex, stripStyle1.clone())
  8.                     }
  9.                     else { ...... }
  10.                 }
  11.             }
复制代码
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
harryhxs
金牌服务用户   /  发表于:2020-5-18 16:28:38
8#
哦好的,我自己用getRange().backColor()已经解决这个问题
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-5-18 18:12:47
9#
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部