如何使用 Office 脚本删除 table 中的列

How to delete columns in a table using Office Scripts

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

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

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

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

let headerRangeValues = bodyRange.getColumnCount();

此脚本将删除 table 中完全为空的所有列。让我知道这是否能解决您的问题。

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();
    }
  }
}