Office-js Excel 按多个条件对工作表范围进行排序

问题描述 投票:0回答:1

尝试使用office.js javascript api 按多个条件对 Excel 中的一系列值进行在线排序,但结果非常不一致。我尝试根据第 1 列中的值升序排序,但也根据字体颜色进行排序,因此每个字体颜色都按第 1 列的值升序排序。

结果非常不一致。有更好的方法吗?

async function sort(worksheetName) {
    await Excel.run(async (context) => {
      worksheet = context.workbook.worksheets.getItem(worksheetName);
      console.log("sort worksheet:" + worksheetName);
      let myUsedRange = worksheet.getUsedRange();
      let lastrow = myUsedRange.getLastRow().load(["rowindex", "values"]);
      await context.sync();
      let lastrowindex = lastrow.rowIndex + 1;

      // Add values to the range
      let range = worksheet.getRange("A5:M" + lastrowindex);
      console.log("lastrow index sort:" + lastrowindex);
      // Sort the range
      const sortFields = [
        {
          key: 1,
          sortOn: Excel.SortOn.fontColor,
          ascending: true
        },
        {
          key: 1,
          sortOn: Excel.SortOn.value,
          ascending: true
        },       
      ];
      
      range.sort.apply(sortFields);

      await context.sync();
    });
  }
javascript excel sorting office-js exceljs
1个回答
0
投票

烦人..非常简单..只需要添加颜色.. { 关键:1、 sortOn: Excel.SortOn.fontColor, 颜色:"#000000", 升序:正确 },

© www.soinside.com 2019 - 2024. All rights reserved.