找回密码
 立即注册

QQ登录

只需一步,快速开始

xiaobo2023
金牌服务用户   /  发表于:2023-9-22 10:40  /   查看:3354  /  回复:15
2金币
本帖最后由 Richard.Huang 于 2023-10-20 10:11 编辑

产品:SpreadJS
版本:V16.1.2

模版配置好的列有样式,因为在模版前面又手动插入了几列,导致之前模版列头样式错乱对不上了,这个有什么api可以解决嘛
  1. for (let c = 0; c < tableCount; c++) {
  2.   let dataField = table.getColumnDataField(c);
  3.   let name = table.getColumnName(c);
  4.   let tableColumn = new GC.Spread.Sheets.Tables.TableColumn();
  5.   const colIndex = c + (startColumn - 1);
  6.   const visible = activeSheet.getColumnVisible(colIndex);
  7.   if (visible) {
  8.     tableColumn.name(name);
  9.     tableColumn.dataField(dataField);
  10.     tableColumns.push(tableColumn);
  11.   } else {
  12.     unvisibleList.push(dataField);
  13.     activeSheet.setColumnVisible(
  14.       colIndex,
  15.       true,
  16.       GC.Spread.Sheets.SheetArea.viewport
  17.     );
  18.     activeSheet.setColumnVisible(
  19.       colIndex + columnsCount,
  20.       false,
  21.       GC.Spread.Sheets.SheetArea.viewport
  22.     );
  23.   }
  24. }
  25. // 隐藏列
  26. console.log(unvisibleList, "unvisibleList");
  27. console.log(tableColumns, "tableColumns1");
  28. historyColumns.forEach((element) => {
  29.   // 添加新的column
  30.   let newTableColumn = new GC.Spread.Sheets.Tables.TableColumn();
  31.   newTableColumn.name(element.name);
  32.   newTableColumn.dataField(element.value);
  33.   tableColumns.unshift(newTableColumn);
  34.   activeSheet.setColumnWidth(0, width, GC.Spread.Sheets.SheetArea.viewpor);
  35.   // table新增一列
  36.   table.insertColumns(tableCount - 1, 1, true);
  37. });
  38. console.log(tableColumns, "tableColumns");
  39. table.bindColumns(tableColumns);
复制代码



最佳答案

查看完整内容

您好,这边调研了一下,因为这个样式是设置在单元格上的,因此只能是再手动调整单元格的样式来实现,请参考: for (let i = 0; i < 5; i++) { let style2 = activeSheet.getStyle(1, i); activeSheet.setStyle(1, i + 4, style2); if (i != 4) { activeSheet.setStyle(1, i, style); } }

15 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-9-22 10:40:36
来自 14#
您好,这边调研了一下,因为这个样式是设置在单元格上的,因此只能是再手动调整单元格的样式来实现,请参考:

  for (let i = 0; i < 5; i++) {
    let style2 = activeSheet.getStyle(1, i);
    activeSheet.setStyle(1, i + 4, style2);
    if (i != 4) {
      activeSheet.setStyle(1, i, style);
    }
  }

image.png933593139.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-9-22 10:51:03
2#
您好,请问您这边遇到的问题是否与该贴是一个问题?(https://gcdn.grapecity.com.cn/fo ... read&tid=187181
回复 使用道具 举报
xiaobo2023
金牌服务用户   /  发表于:2023-9-22 11:04:56
3#
Joestar.Xu 发表于 2023-9-22 10:51
您好,请问您这边遇到的问题是否与该贴是一个问题?(https://gcdn.grapecity.com.cn/forum.php?mod=viewth ...

是的,同一个问题
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-9-22 11:13:30
4#
好的,我看了一下这个json文件,没太理解您目前的问题,您这边是想要实现一个什么样的效果?
回复 使用道具 举报
anyOneCode
注册会员   /  发表于:2023-9-22 11:25:09
5#
这是没有增加列的table,给你json是手动增加后的,所以如何增加后,对应上准确的列
微信截图_20230922112351.png
回复 使用道具 举报
anyOneCode
注册会员   /  发表于:2023-9-22 11:28:39
6#
Joestar.Xu 发表于 2023-9-22 11:13
好的,我看了一下这个json文件,没太理解您目前的问题,您这边是想要实现一个什么样的效果?

这是原来的json

json.zip

6.11 KB, 下载次数: 277

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-9-22 11:59:19
7#
也就是说您这边新增的列是想实现一个多行表头的效果,但是原来的那些表头在实现了多行表头以后上面多出了一个空行,所以想让后面的这几个表头也跟多行表头一样吗?如下图:

image.png410284118.png
回复 使用道具 举报
anyOneCode
注册会员   /  发表于:2023-9-22 14:26:16
8#
Joestar.Xu 发表于 2023-9-22 11:59
也就是说您这边新增的列是想实现一个多行表头的效果,但是原来的那些表头在实现了多行表头以后上面多出了一 ...

是背景颜色的错位,主要你可以对比下两个列头颜色,数据类型,处理节点,处理时间,处理人是新增列,到行标签哪里,背景颜色错位了,需要和上面截图背景颜色对应上
回复 使用道具 举报
anyOneCode
注册会员   /  发表于:2023-9-22 14:28:11
9#
Joestar.Xu 发表于 2023-9-22 11:59
也就是说您这边新增的列是想实现一个多行表头的效果,但是原来的那些表头在实现了多行表头以后上面多出了一 ...

就是处理节点那里的背景颜色往后移三个cell单元格
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部