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;
}