0

C# を使用した Excel の自動化について質問があります。お役に立てば幸いです。

説明:
現在のワークシートの UsedRange で、特定の値を持つ特定のセルを見つける必要があります。したがって、私は2つの方法を書きました。最初のものはExcelワークシートからUsedRangeを取得し、2番目のものはUsedRangeに関連する行/列のリストに見つかった位置を保存します。

問題:
ファイルに Excel シートの先頭に空の行または列がある場合、ワークシート内のこの特定の値の絶対位置を知ることができます...どうすればその位置を取得できますか?

public object[,] GetUsedRangeFromWorksheet(Worksheet worksheet)
{
  if (worksheet == null)
    throw new ArgumentNullException();

  Range usedRange = null;
  object[,] usedRangeValues = null;

  usedRange = worksheet.UsedRange;
  usedRangeValues = (object[,])usedRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);

  return usedRangeValues;
}

public IList<Tuple<int, int>> FindPositionsOfValue(string name, object[,] usedRange) 
{
  if (name == null || name == string.Empty)
    throw new ArgumentNullException();
  if (usedRange == null)
    throw new ArgumentNullException();

  int iRowMax = usedRange.GetLength(0);
  int iColumnMax = usedRange.GetLength(1);
  IList<Tuple<int, int>> lFounds = new List<Tuple<int, int>>();

  for (int iRow = 1; iRow < iRowMax; iRow++)
  {
    for (int iColumn = 1; iColumn < iColumnMax; iColumn++)
      if(usedRange[iRow, iColumn] != null)
        if (usedRange[iRow, iColumn].ToString() == name)
          lFounds.Add(Tuple.Create(iRow, iColumn));
  }

  return lFounds;
}
4

1 に答える 1