如何使用 closed xml 比较列值?

How to compare column values using closed xml?

我在 Excel

中有一个 table
 col1 col2
 2      4
 1      5   
 5      3
 8      7

我需要比较 2 列,col1 和 col2。如果列 col2>col1 中的值,则用红色填充列 col2 中的单元格。如果列 col2 中的值

我写了一个示例方法,但我不知道如何进一步修复它。

private static void BackroundColor(string filePathNameExcel) 
{
    int i = 1;
    using (XLWorkbook wb = new XLWorkbook(filePathNameExcel))
    {
        IXLWorksheet ws = wb.Worksheet("sheetMy");
        int col = 1;
        for (int j = 1; j <= col; j++)
        {
            if (j == 3)
            {
                for (int irow = 1; irow <= i; irow++)
                {
                    if (ws.Cell(irow, 3).GetString() == "2")  
                    {
                        string dat = ws.Cell(irow, 3).GetString();
                        ws.Cell(irow, 1).Style.Fill.BackgroundColor = XLColor.Red;
                    }
                }
            }
        }
        wb.SaveAs(filePathNameExcel, true);
    }
}

如果没有看到更多你的数据格式,我无法完全理解你的代码逻辑,所以我做了一些假设并针对这个例子进行了简化。

起始数据

代码

private static void BackroundColor(string filePathNameExcel)
{
    using (XLWorkbook wb = new XLWorkbook(filePathNameExcel))
    {
        IXLWorksheet ws = wb.Worksheet("sheetMy");
        int lastRow =  ws.LastRowUsed().RowNumber();

        // Loop each row
        for (int irow = 1; irow <= lastRow; irow++)
        {
            // Check if column 1 row value is less then column 2 row value
            if ((double)ws.Cell(irow, 1).Value <  (double)ws.Cell(irow,2).Value)
            {
                ws.Cell(irow, 2).Style.Fill.BackgroundColor = XLColor.Red;
            }
        }

        wb.SaveAs(filePathNameExcel, true);
    }
}

结果