C# excel列中的UsedRange

C# excel列中的UsedRange,c#,excel,interop,C#,Excel,Interop,如何从UsedRange获得专栏;例如A列 xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open("C:\\base.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet = (Excel.Worksheet

如何从UsedRange获得专栏;例如A列

xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open("C:\\base.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

//range = xlWorkSheet.UsedRange;

range = xlWorkSheet.get_Range("A") // reading from A1 to max of excel 65536?

这将得到A列,正如Joe指出的,这可能是UsedRange中的第一列:

range = xlWorkSheet.UsedRange.Columns["A:A", Type.Missing]
这将使您获得范围中的第一列,因此您可以按编号引用:

range = xlWorkSheet.UsedRange.Columns[1, Type.Missing]
@兰斯的回答是:

range = xlWorkSheet.UsedRange.Columns["A:A", Type.Missing] 
将为您提供UsedRange的第一列。例如,如果包含数据的第一列是C列,它将实际返回C列的已使用部分

要获取工作表中第一列的已用行,请使用Intersect:

range = xlApplication.Intersect(xlWorksheet.UsedRange, xlWorksheet.Columns["A:A", Type.Missing])

如果A列不是UsedRange的一部分,则返回null。

请,请,当您需要更多的问题输入时,请不要回答更多的问题。这就是对堆栈溢出的注释。如果您想在获取范围对象后将空条目移出该范围对象,请询问另一个问题。不要在您的特定问题上添加更多问题。我将标记主持人,以将您的答案更改为评论。这些答案需要对问题进行编辑。它们太长了,不能作为评论。不知道为什么会出现否决票,但是如果你想验证这是否有效,那么看看这个。