我有一个 excel 表,我正在使用Open XML SDK 2.0处理它。情况是,我的 excel 表中有一个包含日期的列。我需要从该列中获取最大和最小日期。
我可以通过循环并到达该单元格,进行比较并找到所需的答案来做到这一点。
但是由于最优性,我想通过使用LINQ来获取最小和最大日期来做到这一点。
有可能这样做吗?如果是,那么如何?
您可以看到如何从那里的列中获取所有单元格的 IEnumerable:Read excel sheet data in columns using OpenXML,并在其上使用 Max()。
谢谢大家
我这样用过
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];
你会想看看 LINQMin()
和Max()
函数。如果需要返回整个Cell
对象,可以使用OrderByDescending()
.
您可以阅读 Eric White 的这篇文章Open XML SDK and LINQ to XML(Eric 写了很多关于 OpenXML 和 LINQ 的文章)。然后您将能够使用 LINQ 查询您的 Excel 文件数据。您可能希望在The Open XML SDK Productivity Tool中查看电子表格对象结构,它可以为您生成源代码。您可以使用此代码来了解如何以编程方式访问您需要的数据。