【问题标题】:Using LINQ with Open XML (Excel)将 LINQ 与 Open XML (Excel) 一起使用
【发布时间】:2012-07-31 17:35:09
【问题描述】:

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

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

但由于 优化,我想通过使用 LINQ 来获取最小和最大日期。

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

【问题讨论】:

  • 我只是在每一行和每个单元格中循环并到达包含日期的单元格并与最后保存的最小和最大日期进行比较

标签: c# linq openxml


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    谢谢大家

    我是这样用的

    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];
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 嗨..你能详细告诉我吗..我没有得到
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-17
        • 2010-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多