0

我正在尝试通过 Office-JS 将条件突出显示添加到 Excel 中的列。我第一次使用该automate功能,但我似乎无法让它在 Excel 中工作。

这就是自动化吐出的内容:

function main(workbook: ExcelScript.Workbook) {
    let conditionalFormatting: ExcelScript.ConditionalFormat;
    let selectedSheet = workbook.getActiveWorksheet();
    // Change preset criteria from range A:A on selectedSheet
    conditionalFormatting = selectedSheet.getRange("A:A").addConditionalFormat(ExcelScript.ConditionalFormatType.presetCriteria);
    conditionalFormatting.getPreset().getFormat().getFont().setColor("#9C0006");
    conditionalFormatting.getPreset().getFormat().getFill().setColor("#FFC7CE");
    conditionalFormatting.getPreset().setRule({criterion: ExcelScript.ConditionalFormatPresetCriterion.duplicateValues,});
}

这是我的转录尝试:

function Do_ApplyHighlightDupsConditionalFormatting(rng) {
    ConditionalFormat.rng.addConditionalFormat(ExcelScript.ConditionalFormatType.presetCriteria);
    ConditionalFormat.getPreset().getFormat().getFont().setColor("#9C0006");
    ConditionalFormat.getPreset().getFormat().getFill().setColor("#FFC7CE");
    ConditionalFormat.getPreset().setRule({ criterion: ExcelScript.ConditionalFormatPresetCriterion.duplicateValues, });
}
4

2 回答 2

1

您可以使用 ConditionalFormatPresetCriterion 来执行此操作。请看下面的例子:

$("#run").click(() => tryCatch(run));

async function run() {
  await Excel.run(async (context) => {
    const wb: Excel.Workbook = context.workbook;
    const ws: Excel.Worksheet = wb.worksheets.getActiveWorksheet();
    const rang: Excel.Range = ws.getRange("A1:A5");
    const cf: Excel.ConditionalFormat = rang.conditionalFormats.add(Excel.ConditionalFormatType.presetCriteria);
    cf.preset.format.font.color = "red";
  cf.preset.rule = {criterion:Excel.ConditionalFormatPresetCriterion.duplicateValues};

    await context.sync();

  });
}

/** Default helper for invoking an action and handling errors. */
async function tryCatch(callback) {
  try {
    await callback();
  } catch (error) {
    // Note: In a production add-in, you'd want to notify the user through your add-in's UI.
    console.error(error);
  }
}
于 2022-02-20T20:04:13.783 回答
0

在转置MS Docs@BrianGonzalez Typescript 答案后,我得到了它的工作!

功能:

function Set_Dup_Conditional_Formatting(rng) {
    //https://stackoverflow.com/questions/71189904/apply-conditional-formatting-duplicates-excel-javascript
    var conditionalFormat = rng.conditionalFormats.add(
        Excel.ConditionalFormatType.presetCriteria
    );
    conditionalFormat.preset.format.font.color = "red";
    conditionalFormat.preset.rule = {
        criterion: Excel.ConditionalFormatPresetCriterion.duplicateValues
    };
    return true;
}
于 2022-03-02T23:31:24.927 回答