我有一张excel表,我正在使用 Open XML SDK 2.0 进行处理。方案是,有一个列包含我的Excel工作表中的日期。我需要从该列中获取最大和最小日期。
我可以通过循环并到达那个单元格,进行比较并找到所需的答案来做到这一点。
但由于最优性,我希望通过 LINQ 来获取最小和最大日期。
有可能这样做吗?如果是,那怎么样?
答案 0 :(得分:1)
您可以看到如何从列中获取所有单元格的IEnumerable:Read excel sheet data in columns using OpenXML,并在其上使用Max()。
答案 1 :(得分:0)
您需要查看LINQ Min()
和Max()
函数。如果您需要返回整个Cell
对象,则可以使用OrderByDescending()
。
答案 2 :(得分:0)
你可以阅读Eric White撰写的这篇文章Open XML SDK and LINQ to XML(Eric写了很多关于OpenXML和LINQ的帖子)。然后,您将能够使用LINQ查询Excel文件数据。您可能希望在The Open XML SDK Productivity Tool中看到电子表格对象结构,它可以为您生成源代码。您可以使用此代码了解如何以编程方式访问所需的数据。
答案 3 :(得分:0)
感谢所有
我用过这样的
IEnumerable<Cell> cells = workSheetPart.Worksheet.Descendants<Cell>().Where(c => string.Compare(GetColumnName(c.CellReference.Value), strIndex, false) == 0).OrderBy(c => c.CellValue.Text);
获得像这样的最小值和最大值
int cellCount = cells.Count();
Cell MaxCell = cells.ToArray()[0];
Cell MinCell = cells.ToArray()[cellCount - 1];