我正在尝试使用 ClosedXml 读取 Excel 中单元格的填充背景颜色。我正在使用此示例代码,并且能够毫无问题地读取 Excel 文档的内容,但无法将单元格的Fill BackgroundColor读取为十六进制值。我能够看到在BackgroundColor下定义的ThemeColor和ThemeTint属性,但还没有找到将它们转换为System.Color或十六进制值的方法。这是我的代码:
// Get all categories
while (!categoryRow.Cell(coCategoryId).IsEmpty())
{
IXLCell categoryName = categoryRow.Cell(coCategoryName);
categories.Add(categoryName.GetString() + " " + XLColor.FromTheme(categoryName.Style.Fill.BackgroundColor.ThemeColor, categoryName.Style.Fill.BackgroundColor.ThemeTint).Color.ToHex());
categoryRow = categoryRow.RowBelow();
}
似乎XLColor.FromTheme方法总是抛出异常“无法将主题颜色转换为颜色”。有谁知道从ThemeColor和ThemeTint值中获取System.Color的另一种方法?
更新:
我没有提到我已经尝试过使用BackgroundColor的Color属性,不幸的是它没有正确填充,如果你在调试器中查看它,你会看到这个属性抛出了与方法XLColor 相同的异常。来自主题。所以这绝对看起来像 ClosedXml 中的一个错误。有谁知道解决方法?