首页 > 解决方案 > C#中的EXCEL条件格式

问题描述

我有一个名为“First Price”的列(excel 列:AG)和一个名为“First Price Override”的列(excel 列:AH)和一个名为“First Price Override 2”的列(excel 列:AI)。

我需要在 C# 中编写一些条件格式来检查 AH 或 AI 列中的值。如果他们在此单元格中输入了值,则 AG 列(与输入的值相关联的行 - 需要将字体样式删除线设置为 true)

我该怎么做呢?

        var orfirstpricerange1 = Worksheet.Range["AH:AH"];
        var orfirstpricerange2 = Worksheet.Range["AI:AI"];
        var firstpricerange = Worksheet.Range["AG:AG"];

firstpricerange.Font.Strikethrough = true;

我已经完成了上述操作,但不知道如何将它们组合在一起以使用条件格式。

标签: c#excelvsto

解决方案


    //firstpricerange.Font.Strikethrough = true;

上面会将整个列的格式设置为“删除线”。我评论它是因为你不想让每个单元格都被删除。

    Excel.FormatCondition format = (Excel.FormatCondition)(Worksheet.get_Range("AG:AG",
        Type.Missing).FormatConditions.Add(Excel.XlFormatConditionType.xlExpression, Excel.XlFormatConditionOperator.xlEqual,
        "=AH1=AI1", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing));
    format.Font.Strikethrough = true;

“Excel”是指using Excel = Microsoft.Office.Interop.Excel;

当前,当 AH 中的值等于 AI 中的值时,列 AG 获得删除线。


推荐阅读