2

我有一个 excel 表,我正在使用Open XML SDK 2.0处理它。情况是,我的 excel 表中有一个包含日期的列。我需要从该列中获取最大和最小日期。

我可以通过循环并到达该单元格,进行比较并找到所需的答案来做到这一点。

但是由于最优性,我想通过使用LINQ来获取最小和最大日期来做到这一点。

有可能这样做吗?如果是,那么如何?

4

4 回答 4

1

您可以看到如何从那里的列中获取所有单元格的 IEnumerable:Read excel sheet data in columns using OpenXML,并在其上使用 Max()。

于 2012-07-30T14:04:02.387 回答
1

谢谢大家

我这样用过

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];
于 2012-07-31T09:35:09.230 回答
0

你会想看看 LINQMin()Max()函数。如果需要返回整个Cell对象,可以使用OrderByDescending().

于 2012-07-30T23:21:20.117 回答
0

您可以阅读 Eric White 的这篇文章Open XML SDK and LINQ to XML(Eric 写了很多关于 OpenXML 和 LINQ 的文章)。然后您将能够使用 LINQ 查询您的 Excel 文件数据。您可能希望在The Open XML SDK Productivity Tool中查看电子表格对象结构,它可以为您生成源代码。您可以使用此代码来了解如何以编程方式访问您需要的数据。

于 2012-07-31T09:10:35.213 回答