可以在列头区域指定位置插入行吗?(SJS-15850)
本帖最后由 Lynn.Dou 于 2022-11-23 17:32 编辑使用addRows插入一行后发现新增行位于 单元格区域,可以在列头区域指定位置插入行吗?
本帖最后由 Lynn.Dou 于 2022-11-22 18:07 编辑
您好,
从图1来看,“任务名称”等是自定义列头内容,addRows方法是对表单内容区域实现的插入行,所以插入行效果如下:
因Excel不支持自定义行列头,如果设置了将列头作为冻结行导出,就会出现您图2所示的效果。
猜测您的需求为:导出的excel文件中显示新增的行在“任务名称”冻结行之前,
如果是,目前没有API可以在列头区域新增行,已将此作为需求记录下来了,如果后面有相关计划会在贴中通知您。(SJS-15850)
有一个思路您可以考虑下:
先使用setRowCount方法给列头设置多行,然后使用setValue修改列头单元格的value,以实现“插入行”的效果。
sheet.setRowCount(2,GC.Spread.Sheets.SheetArea.colHeader);
sheet.setValue(0,0,null,GC.Spread.Sheets.SheetArea.colHeader);
sheet.setValue(1,0,"任务名称",GC.Spread.Sheets.SheetArea.colHeader)
我的表头行数,也是不固定的
这是好的方法吗
顺便说下,我的需求是:
导出后表头上 插入一行此表的名称 Lynn.Dou 发表于 2022-11-22 17:05
您好,
从图1来看,“任务名称”等是自定义列头内容,addRows方法是对表单内容区域实现的插入行,所以插入 ...
我的表头行数,也是不固定的
这是好的方法吗
顺便说下,我的需求是:
导出后表头上 插入一行此表的名称 如果使用setRowCount,那么每个单元格都要setValue,这不是一个好方法:) Lynn.Dou 发表于 2022-11-22 17:05
您好,
从图1来看,“任务名称”等是自定义列头内容,addRows方法是对表单内容区域实现的插入行,所以插入 ...
大哥,看到了回复下哦 目前这边也没有更好的方案了。可以根据上述思路自己封装一个方法,根据业务需求判断行的位置,setValue修改单元格的值。这边也尝试封装下,预计明天贴中回复。
前面已提到,已将此问题作为需求记录下来了,如果后面有相关计划会在贴中通知您的。
(贴中已附上需求编号)
附件demo实现思路您可以参考下,主要封装方法代码如下:
// 封装方法,实现表头向上插入行
function addRowColHeader(row, rowCount) {
sheet.suspendPaint();
var oldRowCount = sheet.getRowCount(GC.Spread.Sheets.SheetArea.colHeader);
sheet.setRowCount(oldRowCount + rowCount, GC.Spread.Sheets.SheetArea.colHeader);
//修改列头单元格value
for(var c = 0; c < sheet.getColumnCount(); c++) {
var value = sheet.getValue(0, c, GC.Spread.Sheets.SheetArea.colHeader);
sheet.setValue(oldRowCount + rowCount - 1, c, value, GC.Spread.Sheets.SheetArea.colHeader);
sheet.setValue(0,c,null, GC.Spread.Sheets.SheetArea.colHeader);
}
sheet.resumePaint();
}
电话沟通中了解到您的需求为导出excel文件时新增一行用于放置表名,这边整理了两个demo,您可以参考下。
demo1:通过setRowCount间接实现表头区域插入行的效果,需要对合并单元格、value等做修改,实现较复杂,可以参考下。
demo2:通过新建一个spread,间接对冻结行做插入行,实现期待的效果,相较于demo1方案更简洁,您可以考虑下。
Lynn.Dou 发表于 2022-11-24 13:41
电话沟通中了解到您的需求为导出excel文件时新增一行用于放置表名,这边整理了两个demo,您可以参考下。
...
你好,结合以上的demo2可以实现;
其中有点问题是 因为列头行数不固定,需要冻结设置:
sheet.frozenRowCount(json.sheets.Sheet1.frozenRowCount + 1 )
毕竟是 通过 new Spread的 临时方案,
纳入的需求单(SJS-15850) 如果有上线 请告知,感谢!
页:
[1]
2