如何只获取EXCEL工作表中具有值的列

时间:2011-05-30 04:32:38

标签: c# excel excel-2007

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

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

但我的excel表只有15列。如何仅 那些具有值的列?

2 个答案:

答案 0 :(得分:4)

以下是我通常的做法:

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 ,我希望这会有所帮助。

答案 1 :(得分:0)

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

想象一下,您正在使用“真正的”Excel,并将活动单元格放置在包含您要缩小到的列的行的最末端。让我们为第一行的最后一列说“XFD1”。这是16,000+号码的来源。

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

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

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

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

如果你可以在Excel中完成,你可以使用自动化API来完成它!