У меня есть операция, требующая перебора 3000 ячеек Excel. Проблема в том, что этот мой код кажется довольно плохим по производительности. Я провел небольшое исследование с классом Секундомер, чтобы увидеть, где я теряю время. Моя операция длится 24 секунды, и только одна строка кода там занимает 17 секунд. Я использую этот код моего класса возвращаемое имя ячейки из ссылки на ячейку.
public string GetCellName(Range cell)
{
string name = "";
try
{
name = cell.Name.Name;
}
catch { }
return name;
}
Мне кажется странным, что этот простой код отнимает столько времени. Есть некоторые другие части, которые должны занять больше времени, например, мало для цикла с 6-8 элементами.
Я пытался написать этот метод так:
public string GetCellName(Range cell)
{
if (cell.Name == null) return "";
else if (cell.Name.Name == null) return "";
else return cell.Name.Name;
}
Но чем это исключение. Есть ли у вас какие-либо предложения о том, как эффективно извлечь имя ячейки Excel?