如何仅获取 EXCEL 工作表中具有值的列
我正在用 C# 以编程方式读取 Excel 文件。
当我使用 Excel.Worksheet.Columns.columns.count 时,我得到的值高于 16,000。
但我的 Excel 工作表只有 15 列。如何仅获取那些具有值的列?
I am programatically reading an Excel file in C#.
When I use Excel.Worksheet.Columns.columns.count, I get a value above 16,000.
But my excel sheet has only 15 columns. How do I get only those columns that have a value?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是我通常这样做的:
所以,关键是使用 UsedRange,我希望这会有所帮助。
Here is how I usually do this:
so, the key is to use UsedRange, I hope this will help.
当尝试自动化 Excel 时,您可以首先弄清楚如何在 Excel 中执行您想要的操作,然后找出使用自动化 API 实现这一目标的方法。
想象一下,您正在使用“真正的”Excel,并将活动单元格放置在包含您要缩小范围的列的行的最末尾。让我们为第一行的最后一列说“XFD1”。这就是 16,000+ 数字的来源。
要到达包含非空值的最后一个单元格,您可以按
End
键进入“结束模式”,然后按向左箭头
,这将定位电子表格第 15 列或地址为“O1”的“O”列中的活动单元格。“结束模式”的等效 C# 自动化 API 是什么?它是
Range.End
函数。以下是描述:,以下是
End
函数的一些 VBA 示例:Excel 多年来没有太大变化,因此这些 VBA 示例非常流行,并且仍然非常有用,即使您必须翻译语法到 C#。
如果您可以在 Excel 中完成此操作,那么您也可以使用自动化 API 来完成此操作!
When trying to automate Excel, you can first figure out how to do what you want in Excel, then figure out the way to make that happen using the automation API.
Imagine you are using the "real" Excel and you position the active cell at the very end of the row that contains the columns you are trying to narrow down to. Lets say "XFD1" for that last column of the first row. This is where the 16,000+ number comes from.
To get to the last cell that contains a non-empty value, you can press the
End
key to enter "End Mode" and then pressLeft Arrow
and this will position the active cell, for your spreadsheet, in column 15, or column "O" with address "O1".What is the equivalent C# automation API for "End Mode"? It is the
Range.End
function. Here is a description:and here are some VBA examples of the
End
function:Excel hasn't changed much over the years so these VBA examples are very prevalent and still quite useful, even if you have to translate the syntax to C#.
If you can do it in Excel itself, you can probably do it using the automation API!