如何解决在 ExcelJS 中一次删除多个空行
[{"name":"sam","value":"1"},{"name":"jam","value":"3"},{"name":"dam","value":"4"}]
这个函数的问题在于它会将整行逐行向上移动。 还有另一个函数(从 ScriptLab 修改)用于删除重复项,适用于大量行。
async function RemoveEmptyRows() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var selectedRange = context.workbook.getSelectedRange();
var surroundingRegion = selectedRange.getSurroundingRegion();
var firstCell = selectedRange.getCell(0,0);
firstCell.load(['columnIndex']);
surroundingRegion.load(['rowCount','columnCount']);
await context.sync();
var newRange = sheet.getRangeByIndexes(0,firstCell.columnIndex,surroundingRegion.rowCount,1);
newRange.load(['address','rowCount','values']);
await context.sync();
var i = 0;
var loopRange = newRange.rowCount;
var counter = 0;
var cellText = "";
while (i < loopRange) {
cellText = newRange.values[i][0];
if (cellText == "") {
var entireRow = sheet.getRangeByIndexes(i - counter,1,surroundingRegion.columnCount);
entireRow.delete(Excel.DeleteShiftDirection.up);
counter++;
}
i++;
}
await context.sync();
});
}
有没有办法创建类似于 RemoveDuplicates 函数的东西,但用于 EmptyRows?
谢谢。
解决方法
到目前为止,Excel JS 还没有 DeleteEmptyRows()
,但这听起来是一个很好的建议,我们将来会考虑创建这个 API。
可以对范围进行排序吗?如果是,这里有一个解决方法。
首先对范围进行排序,因此空行会保持在一起,然后创建一个包含空行的范围,然后您可以调用range.delete(up)
删除空行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。