将 EPPlus 样式填充背景颜色与 System.Drawing.Color 进行比较会出错

Comparing EPPlus Style Fill background Color with System.Drawing.Color gives error

我正在使用 EPPlus 库读取和修改 excel 文件中的内容。 当首先处理 excel 文件时,最初会分配行的背景颜色。将手动添加新记录。然后,当新记录添加到这个现有文件时,它们将不会设置背景颜色。我希望根据背景颜色跳过已处理的行。但是在尝试进行颜色比较时出现此错误。

错误 5 类型 'OfficeOpenXml.Style.ExcelColor' 的值无法转换为 'System.Drawing.Color'。

 If Not myrow.Style.Fill.BackgroundColor = Color.LightSlateGray AndAlso myrow.Style.Font.Bold = True Then
            HasExcelRowBeenAlreadyProcessed = False
        Else
            HasExcelRowBeenAlreadyProcessed = True
        End If

我也试过这个,但不知何故它不起作用。请问有人可以帮忙吗?

 Dim oCellRGBVal = System.Drawing.ColorTranslator.FromHtml(myrow.Style.Fill.BackgroundColor.LookupColor.ToString).ToArgb

            HasExcelRowBeenAlreadyProcessed = False

            If Not oCellRGBVal = Color.LightSlateGray.ToArgb AndAlso myrow.Style.Font.Bold = True Then
                HasExcelRowBeenAlreadyProcessed = False
            Else
                HasExcelRowBeenAlreadyProcessed = True
            End If

我不会尝试转换背景颜色,而是将初始颜色转换为字符串。

    Dim colorAsString As String = Color.LightSlateGray.ToArgb.ToString("X2")

    If Not myrow.Style.Fill.BackgroundColor.Rgb = colorAsString AndAlso myrow.Style.Font.Bold = True Then
        HasExcelRowBeenAlreadyProcessed = False
    Else
        HasExcelRowBeenAlreadyProcessed = True
    End If

这应该有效。此外,这让您可以存储 colorAsString,这样您就不需要每次都计算它。