【问题标题】:Finding the number of cells in a row that has data查找具有数据的行中的单元格数
【发布时间】:2013-09-04 02:05:15
【问题描述】:

所以我在查找包含数据的 excel 文档中的行数时遇到了问题。到目前为止,这是我所拥有的:

        for (int i = 2; i <= b; i++)
        {
            if (!(worksheet.get_Range("A" + i, misValue).Formula == null))
            {
                a.Add(worksheet.get_Range("A" + i, misValue).Formula);
            }
        }

目前我只是粗略地翻阅大量行,询问它是否为空,然后将内容添加到列表中。必须有一种更简单的方法,谷歌尚未向我展示。感谢高级的帮助

【问题讨论】:

  • 你在哪里分配b
  • 刚刚在代码中(这不是整个程序)(int b = worksheet.Rows.Count;)
  • 什么是misValue,你是检查多列的所有行还是一列的所有行?
  • 必须在代码中的某处(您的或较低级别的)工作表被“解析”出来。
  • 一栏,misValue 就是“System.Reflection.Missing.Value”。它的设置方式有效,但速度非常慢。处理一个单元(带有测试数据)平均需要十分之一秒,但一旦应用到更大规模,速度可能会成为问题。

标签: c# excel


【解决方案1】:

我可能没有正确理解您的问题,但我猜您正在尝试查找 A 列中具有值的所有单元格,并且我假设您在 C# 中使用Excel Interop。 ..

为此,您可以使用Range.SpecialCells 方法。

因此,例如,要获取具有恒定值或公式的单元格,请使用:

worksheet.Range("A:A").SpecialCells(
    Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeConstants |
    Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeFormulas)

这将返回一个范围,您可以循环并添加到您的列表中,a....

查看文档here

希望这会有所帮助...

【讨论】:

    猜你喜欢
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 2018-01-21
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多