0

我有一个表,我希望删除特定列以通过 Office 脚本进行进一步处理。还查看了 API 参考,但我找不到这样做的方法。

我总共有大约 30 列,但想删除几个包含空白行数据的列,之后计划使用getId()getIndex()对减少的列集执行进一步的操作。

我担心的是每个 Excel 文件都没有固定数量的列,也没有特定的顺序,所以我猜使用getColumnByIdorgetColumnByName将是一个挑战。

我能得到的最远的是确定列数,但只是想知道是否有办法实现上述目标。

let headerRangeValues = bodyRange.getColumnCount();
4

1 回答 1

1

此脚本将删除表中完全为空的所有列。让我知道这是否可以解决您的情况。

function main(workbook: ExcelScript.Workbook) {
  let selectedSheet = workbook.getActiveWorksheet();
  let table = selectedSheet.getTables()[0];
  let body = table.getRangeBetweenHeaderAndTotal().getValues();
  let headers= table.getHeaderRowRange().getValues();
  for (let column=table.getColumns().length-1; column>=0; column--){
    var entireColumnIsEmpty = true;
    for (let row=0; row<table.getRowCount(); row++){
         if (body[row][column] != ""){
           entireColumnIsEmpty = false;
           break;
         }
         
    }
    if (entireColumnIsEmpty){
      table.getColumnByName(""+headers[0][column]).delete();
    }
  }
}
于 2021-04-22T21:21:51.947 回答