C# c excel如何在使用范围内查找第一个单元格。
我可以使用XlCellType.xlCellTypeLastCell查找所用范围内的最后一个单元格。如何在一行中获得第一个单元格 获取最后一个单元格位置的代码C# c excel如何在使用范围内查找第一个单元格。,c#,excel,range,excel-interop,C#,Excel,Range,Excel Interop,我可以使用XlCellType.xlCellTypeLastCell查找所用范围内的最后一个单元格。如何在一行中获得第一个单元格 获取最后一个单元格位置的代码 Excel.Range mergeCells = (Excel.Range)mergeSheet.Cells[6,1].EntireRow; var rowRng = mergeCells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing); var
Excel.Range mergeCells = (Excel.Range)mergeSheet.Cells[6,1].EntireRow;
var rowRng = mergeCells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing);
var colPosition = rowRng.Column;
一种方法是获取mergeCells.value并循环增加计数器,直到看到null/empty值。但我希望能在一行中得到这个。
有什么想法吗
测试用例:
一,
预期结果colPosition=1
二,
预期结果colPosition=5除非您使用的是旧的xls文件,否则我强烈建议您使用ClosedXML而不是Microsoft的Excel库。使用ClosedXML,您可以执行以下操作这是从他们的网页上直接获取的: 把它从NuGet软件包上取下来。安装程序包ClosedXML-版本0.93.1
我强烈建议使用ClosedXML而不是Microsoft的Excel库,除非您使用的是旧的xls文件。使用ClosedXML,您可以执行以下操作这是从他们的网页上直接获取的: 把它从NuGet软件包上取下来。安装程序包ClosedXML-版本0.93.1
下面是一个使用问题中标记的Excel互操作库的解决方案。下面的方法将返回给定行中第一个单元格的基于1的列索引。它在您提供的测试用例以及我自己的一些测试用例中对我有效。请注意,如果只想使用已使用范围中的第一行,而不是提供的行,则可以使用ActiveSheet.UsedRange.Rows[1].row查找第一个已使用的行号
下面是一个使用问题中标记的Excel互操作库的解决方案。下面的方法将返回给定行中第一个单元格的基于1的列索引。它在您提供的测试用例以及我自己的一些测试用例中对我有效。请注意,如果只想使用已使用范围中的第一行,而不是提供的行,则可以使用ActiveSheet.UsedRange.Rows[1].row查找第一个已使用的行号
请尝试下面的代码段,这将给出excel使用范围的第一行
Excel.Workbook xlWB = Globals.ThisAddIn.Application.ActiveWorkbook;
Excel.Worksheet xlWS = xlWB.ActiveSheet;
int firstRow = xlWS.UsedRange.Row;
请尝试下面的代码段,这将给出excel使用范围的第一行
Excel.Workbook xlWB = Globals.ThisAddIn.Application.ActiveWorkbook;
Excel.Worksheet xlWS = xlWB.ActiveSheet;
int firstRow = xlWS.UsedRange.Row;
干得好。感谢您包含显示Excel对象发布的部分。我经常看到使用excel发布的帖子不包含这些内容,如果不能正确发布这些对象,可能会产生很大的问题。谢谢。这是可行的,感谢您展示如何发布Excel ObjectsNice work。感谢您包含显示Excel对象发布的部分。我经常看到使用excel发布的帖子不包含这些内容,如果不能正确发布这些对象,可能会产生很大的问题。谢谢。这很有效,是的,感谢您演示如何发布Excel ObjectsCan。您可以解释它的功能吗?这将给出Excel使用范围的第一行。您可以解释它的功能吗?这将给出Excel使用范围的第一行
Excel.Workbook xlWB = Globals.ThisAddIn.Application.ActiveWorkbook;
Excel.Worksheet xlWS = xlWB.ActiveSheet;
int firstRow = xlWS.UsedRange.Row;