1金币
清除子项表内容代码
const sheet = this.spread.getSheetFromName("子项表");
const table = sheet.tables.findByName("子项表");
const Range = table.dataRange();
this.spread.suspendPaint();
table.deleteRows(0, Range.rowCount); //删除行
table.insertRows(0, 3);
清除单位工程数内容代码
const sheet = this.spread.getSheetFromName("单位工程数据库");
const table = this.spread
.getSheetFromName("单位工程数据库")
.tables.find(0, 0);
const Range = table.dataRange();
sheet.deleteRows(3, Range.rowCount - 3); //删除行
console.log("deleteRows", Math.round((new Date() - da) / 1000));
sheet.clear(
Range.row,
Range.col,
Range.rowCount,
Range.colCount,
GC.Spread.Sheets.SheetArea.viewport,
GC.Spread.Sheets.StorageType.data
);
点击清除 子项表 单位工程数据库有数据是 执行17秒清除成功
单位工程数据库没有有数据 点击清除 子项表 执行0秒 清除成功
不知道什么原因,是在electron框架中操作的
文件在附件中有没有其他人试试,是不是这样,还是只有我这样
|
最佳答案
查看完整内容
您好,问题出在了table.insertRow和table.deleteRows上。
如果您对两个sheet采用同样的api (sheet.deleteRows),执行速度是差不多的,如下图所示
如果为子项表,进行删除行之后 ,扩大table区域,会有一部分耗时,如下图所示:
所以insertRow或者 sheet.tables.resize(table,table.range().rowCount+3,table.range().colCount)是导致删除两个表时间差的原因。
为此,您可以少删除三行,保留4行的table区域,然后 ...
|