我现在有一个大的报表,有300列,初始设计时只有5行,让用户填报时,需要填充5000行的数据,因此要扩展5000行,行的格式要与前面的行一致(比如样式、字体,公式、行高等)。
扩展行的方式是先插入行,在利用DragFillUndoAction这个类来实现填充复制单元格操作,最后设置行高。代码如下:
- //先插入行
- sheet.addRows((range.row + firstRowRange.rowCount), (range.rowCount - firstRowRange.rowCount));
- //在使用拖动填充动作,进行向下复制单元格操作
- var dragFillExtent = {
- startRange: startRowRange,
- fillRange: fillRowRange,
- autoFillType: GcSpread.Sheets.AutoFillType.CopyCells,
- fillDirection: GcSpread.Sheets.FillDirection.Down
- };
- var fillAction = new GcSpread.Sheets.UndoRedo.DragFillUndoAction(sheet, dragFillExtent);
- fillAction.execute(sheet);
- var firstRowHeight = sheet.getRowHeight(firstRowRange.row);
- for (var i = fillRowRange.row; i < fillRowRange.row + fillRowRange.rowCount; i++) {
- sheet.setRowHeight(i, firstRowHeight);
- }
复制代码
但是用这个代码,在列数非常多和扩展的行数非常多的情况下,执行速度非常慢,请问如何优化提升执行速度? |
|