我有一个关于用 C# 自动化 excel 的问题,希望你能帮助我。
说明:
我必须在当前工作表的 UsedRange 中找到具有特定值的特定单元格。因此我写了两种方法。第一个从 excel 工作表中获取 UsedRange,第二个将发现的位置存储在与 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;
}