我以编程方式在C#中读取Excel文件。
当我使用Excel.Worksheet.Columns.columns.count时,我得到的值大于16,000。
但我的excel表只有15列。如何仅 那些具有值的列?
答案 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来完成它!