如何获取范围的单元格列

时间:2013-08-12 14:35:48

标签: c# excel excel-interop

我正在迭代我从一个范围中获取的一行,以便在单元格内容中找到一个特定的单词然后我想得到我找到它的列。例如,如果我在第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;
    }

注意我需要添加代码的string column行。

1 个答案:

答案 0 :(得分:1)

至于你不想依赖任何计算,我看到的另一个选项是从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();
}

正如您所看到的,我强制显示“$”以便简化列字母检索。