Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c excel如何在使用范围内查找第一个单元格。_C#_Excel_Range_Excel Interop - Fatal编程技术网

C# c excel如何在使用范围内查找第一个单元格。

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

我可以使用XlCellType.xlCellTypeLastCell查找所用范围内的最后一个单元格。如何在一行中获得第一个单元格

获取最后一个单元格位置的代码

    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;