我正在寻找一个库,允许我使用C#读取Excel文档,但我需要能够读取单元格格式以及电子表格中的数据。我发现this useful question列出了很多不同的替代品,用于读取Excel文件,但读了很多这里提供只允许电子表格的内容的解决方案,而不是单元格属性(如字体,背景颜色等)。但是,对于我的特定问题,我需要阅读包含很多单元格格式的文档,并且需要能够阅读此格式信息。在Excel中读取Excel数据和单元格格式#
,我需要在读取Excel文档是XLS文件,所以我不需要在这个阶段阅读XLSX。我正在寻找一个可以在没有安装Excel的情况下在服务器上使用的库,因此它必须是独立的解决方案,最好是开源的。
有没有人从xls文档中读取单元格格式信息的经验,并可以建议一个库来帮助完成此任务?
UPDATE:
我因为从我读到它考虑使用ClosedXml,似乎提供了我需要的功能。我从这个示例代码的工作:
,并已能够读取Excel文件的内容没有问题。我只使用了此代码中的类别示例,但已将两个类别名称单元格格式化为具有背景颜色。现在,我试图用ClosedXml做的是确定:
如果填写背景颜色已经在特定的细胞
被定义,如果它被定义,检索的颜色填写(十六进制值会做)
下面是一些代码,我曾尝试使用:
// Get all categories
while (!categoryRow.Cell(coCategoryId).IsEmpty())
{
IXLCell categoryName = categoryRow.Cell(coCategoryName);
try
{
categories.Add(categoryName.GetString() + " " + categoryName.Style.Fill.BackgroundColor.Color.ToHex());
}
catch
{
categories.Add(categoryName.GetString() + " None");
}
categoryRow = categoryRow.RowBelow();
}
但代码
categoryName.Style.Fill.BackgroundColor.Color.ToHex()
总是抛出了厚望“给定的关键是不存在的字典。”,即使对于确实具有背景颜色的单元格也是如此。任何人有任何想法如何让这与ClosedXml工作?
我认为这将是更方便问关于'Color.ToHex()'例外单独的问题。 –
谢谢,AnatoliiG。我得出了同样的结论,并已经就此提出了一个单独的问题。问题在这里:http://stackoverflow.com/questions/11198653/cannot-convert-theme-color-to-color-in-closedxml – BruceHill
我很高兴'ClosedXml'适合你。 ;) –