找回密码
 立即注册

QQ登录

只需一步,快速开始

xiaobo2023
金牌服务用户   /  发表于:2023-9-22 10:40  /   查看:3364  /  回复: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);
复制代码



15 个回复

正序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-10-19 10:15:31
16#
本帖最后由 Ellia.Duan 于 2023-10-19 14:45 编辑

看到您长时间没有再回复,那本帖先关闭了,您有问题可以发新帖询问。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-9-25 10:43:09
15#
您好,请问您的问题是否已经解决,如果仍未解决,欢迎继续回帖,我们来协助调研。
回复 使用道具 举报
xiaobo2023
金牌服务用户   /  发表于:2023-9-22 16:05:51
13#
Joestar.Xu 发表于 2023-9-22 14:40
我这边在尝试用您的代码重现问题时报错了。

这个变量你默认为1就好了
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-9-22 14:46:56
12#
还是缺少一些相关变量。

image.png849512023.png

为了更快地解决您的问题,能否请您提供一个完整的可以运行的Demo呢?
回复 使用道具 举报
anyOneCode
注册会员   /  发表于:2023-9-22 14:44:28
11#
Joestar.Xu 发表于 2023-9-22 14:40
我这边在尝试用您的代码重现问题时报错了。

        const startColumn = stringTonum(sheetList[sheetIndex].startColumn);
export const stringTonum = (a: string) => {
  let str = a.toLowerCase().split("");
  let num = 0;
  let al = str.length;
  let getCharNumber = function (charx: string) {
    return charx.charCodeAt() - 96;
  };
  let numout = 0;
  let charnum = 0;
  for (let i = 0; i < al; i++) {
    charnum = getCharNumber(str);
    numout += charnum * Math.pow(26, al - i - 1);
  }
  return numout;
};
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-9-22 14:40:41
10#
我这边在尝试用您的代码重现问题时报错了。

image.png798694762.png

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

就是处理节点那里的背景颜色往后移三个cell单元格
回复 使用道具 举报
anyOneCode
注册会员   /  发表于:2023-9-22 14:26:16
8#
Joestar.Xu 发表于 2023-9-22 11:59
也就是说您这边新增的列是想实现一个多行表头的效果,但是原来的那些表头在实现了多行表头以后上面多出了一 ...

是背景颜色的错位,主要你可以对比下两个列头颜色,数据类型,处理节点,处理时间,处理人是新增列,到行标签哪里,背景颜色错位了,需要和上面截图背景颜色对应上
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-9-22 11:59:19
7#
也就是说您这边新增的列是想实现一个多行表头的效果,但是原来的那些表头在实现了多行表头以后上面多出了一个空行,所以想让后面的这几个表头也跟多行表头一样吗?如下图:

image.png410284118.png
回复 使用道具 举报
anyOneCode
注册会员   /  发表于:2023-9-22 11:28:39
6#
Joestar.Xu 发表于 2023-9-22 11:13
好的,我看了一下这个json文件,没太理解您目前的问题,您这边是想要实现一个什么样的效果?

这是原来的json

json.zip

6.11 KB, 下载次数: 277

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部