Моя задача - скрыть/показать строки книги excel на основе того, существует ли строка в определенной строке или нет. Проблема, с которой я сталкиваюсь, заключается в том, что мне требуется около 20 секунд для выполнения этой задачи на 1000 строк со следующим кодом. Файл может иметь целых 2k-3k строк, и я хочу сократить время загрузки.Скрыть/показать строки в Excel в приложении VSTO C#
Следует отметить, что когда я комментирую строку в моем коде, которая «скрывает/скрывает» всю строку (currentFind.EntireRow.Hidden =! IsShown;), тогда файл excel занимает всего 4-5 секунд для загрузки , Это заставляет меня сделать вывод, что это часть сокрытия строки, которая требует много времени, а не поиск строки.
Worksheet activeWorksheet= Globals.ThisAddIn.Application.ActiveSheet;
Range usedRange = activeWorksheet.UsedRange;
Range currentFind = null;
Range firstFind = null;
currentFind = activeWorksheet.UsedRange.Find(searchInput);
while (currentFind != null)
{
// Keep track of the first range you find.
if (firstFind == null)
{
firstFind = currentFind;
}
// If you didn't move to a new range, you are done.
else if (currentFind.get_Address(XlReferenceStyle.xlA1)
== firstFind.get_Address(XlReferenceStyle.xlA1))
{
break;
}
currentFind.EntireRow.Hidden = !isShown;
currentFind = usedRange.FindNext(currentFind);
}
Было ли решение работать на вас? Если это так, ответьте пожалуйста – dgorti