【问题标题】:How to get only those colums in a EXCEL worksheet that have a value如何仅获取 EXCEL 工作表中具有值的那些列
【发布时间】:2011-05-30 04:32:37
【问题描述】:

我正在以编程方式读取 C# 中的 Excel 文件。

当我使用 Excel.Worksheet.Columns.columns.count 时,我得到的值超过 16,000。

但我的 Excel 表只有 15 列。如何仅获取那些具有值的列

【问题讨论】:

    标签: c# excel excel-2007


    【解决方案1】:

    这是我通常的做法:

    Excel.Application demoApp= new Excel.Application();
    demoApp.Workbooks.Open(fileName);
    int rowCount = demoApp.ActiveSheet.UsedRange.Rows.Count;
    int colCount = demoApp.ActiveSheet.UsedRange.Columns.Count;
    

    所以,关键是使用UsedRange,希望对你有所帮助。

    【讨论】:

      【解决方案2】:

      在尝试自动化 Excel 时,您可以先弄清楚如何在 Excel 中做您想做的事情,然后找出使用自动化 API 实现这一目标的方法。

      假设您正在使用“真正的”Excel,并且您将活动单元格放置在包含您要缩小到的列的行的最末端。让我们为第一行的最后一列说“XFD1”。这就是 16,000 多个数字的来源。

      要到达最后一个包含非空值的单元格,您可以按End 键进入“结束模式”,然后按Left Arrow,这会将您的电子表格的活动单元格定位在第 15 列,或地址为“O1”的“O”列。

      “结束模式”的等效 C# 自动化 API 是什么?它是Range.End 函数。这是一个描述:

      下面是End 函数的一些 VBA 示例:

      多年来,Excel 没有太大变化,因此这些 VBA 示例非常流行并且仍然非常有用,即使您必须将语法转换为 C#。

      如果您可以在 Excel 本身中执行此操作,您可能可以使用自动化 API 执行此操作!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-19
        相关资源
        最近更新 更多