Существует ли простой способ удаления нескольких столбцов Excel в одной строке из кода (C #) с помощью Epplus? У меня есть такой переключатель:
switch (packageId)
{
case 15:
case 16: wsSheet.DeleteColumn(16);
wsSheet.DeleteColumn(17);
wsSheet.DeleteColumn(18);
wsSheet.DeleteColumn(19);
wsSheet.DeleteColumn(20);
break;
case 17: delete multiple columns again..
break;
...and so on.....
default:
break;
}
... и так как у меня есть 15-20 дел для удаления нескольких (разных) строк для каждого случая, мне бы очень хотелось сократить код и время, затрачиваемое наэтот метод ..
Для ясности, идентификатор пакета не имеет никаких связей с идентификатором столбца. В реальной ситуации один идентификатор пакета - 358, следующий - 469 и т. Д. Если я не найду более плавного пути, я буду использовать циклы с индексами столбцов (чего я бы хотел избежать, потому что в одном случае я мог быв конечном итоге 5-6 циклов, например, показать первые 15 столбцов, затем удалить следующие 4, затем показать следующие 5, затем удалить следующие 3, .. и так до последнего столбца с индексом 67)
РЕДАКТИРОВАТЬ (мое решение для других, которые приходят к этому вопросу): есть перегрузка метода DeleteColumn (fromCol, noOfCols), который удаляет фиксированное количество столбцов, которое передается во втором параметре, но я хотел иметь что-то вроде«удалить все столбцы из индекса столбца в индекс столбца», поэтому я написал простой маленький метод, который делает это.
private void DeleteColumns(ExcelWorksheet wsSheet, int fromColumn, int toColumn)
{
for (int i = toColumn; i >= fromColumn; i--)
{
wsSheet.DeleteColumn(fromColumn);
}
}
Это делает работу для меня в этом случае ..