C# 如何获取范围的单元格列

C# 如何获取范围的单元格列,c#,excel,excel-interop,C#,Excel,Excel Interop,为了在单元格内容中找到一个特定的单词,我在一个区域中得到一行,然后我想得到我找到它的列。例如,如果我在第19位找到了所需的内容,则表示excel列的值为“S” 以下是我目前使用的代码: Excel.Worksheet xlWorkSheet = GetWorkSheet(currentWorkBook, "sheet"); var row = xlWorkSheet.Rows["5"]; int rowLength = xlWorkSheet.UsedRange.Columns.Count; E

为了在单元格内容中找到一个特定的单词,我在一个区域中得到一行,然后我想得到我找到它的列。例如,如果我在第19位找到了所需的内容,则表示excel列的值为“S”

以下是我目前使用的代码:

Excel.Worksheet xlWorkSheet = GetWorkSheet(currentWorkBook, "sheet");
var row = xlWorkSheet.Rows["5"];
int rowLength = xlWorkSheet.UsedRange.Columns.Count;
Excel.Range currentTitle = row[1]; //in order to iterate only over the 5th row in this example
  for (int i = 1; i < rowLength; i++)
  {
    string title = currentTitle.Value2[1,i];
    if (title == null)
    {
      continue;
    }
    if (title.Contains(wordToSearch))
    {
      string column = THIS IS THE QUESTION - WHAT DO I NEED TO WRITE HERE?
      Excel.Range valueCell = xlWorkSheet.Range[column + "5"];
      return valueCell.Value2;
    }
Excel.Worksheet xlWorkSheet=GetWorkSheet(当前工作簿,“工作表”);
var row=xlsheet.Rows[“5”];
int rowLength=xlsheet.UsedRange.Columns.Count;
Excel.Range currentTitle=行[1]//为了在本例中仅迭代第5行
for(int i=1;i

请注意
string column
行,我需要在其中添加代码。

如果您不想依赖任何计算,我看到的另一个选项是从
Address
属性提取列字母,如下代码所示:

Excel.Range currentRange = (Excel.Range)currentTitle.Cells[1, i];
string columnLetter = currentRange.get_AddressLocal(true, false, Excel.XlReferenceStyle.xlA1, missing, missing).Split('$')[0];
string title = null;
if (currentRange.Value2 != null)
{
     title = currentRange.Value2.ToString();
}

如你所见,我强制使用“$”出现以便于列字母检索。

是否需要从数字到列名的转换?@SergeyKucher,前提是没有我不知道的范围属性,该范围提供了单元格的列。应该有这种属性听起来很简单。我不知道:
string column=((char)('A'+yourNumber-1)).ToString();
…或者是获取适用于普通字母的
19
?@Corak的问题。我们谈论的是excel单元格,例如第28位是“AB”.我不限于26岁numbers@pnuts这确实是一个解决方案,我在发布这个问题之前看到了它,但我试图避免它,因为我打赌只有一个属性可以通过列名获得