我正在使用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
答案 0 :(得分:1)
我没有尝试转换背景色,而是将初始颜色转换为字符串。
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,因此无需每次都进行计算。