Подтвердить что ты не робот

Автоматизация Excel С#: как удалить столбец?

Я читаю это (Задачи Excel) для автоматизации некоторых операций Excel в VS2008 С#
http://msdn.microsoft.com/en-us/library/syyd7czh%28v=VS.80%29.aspx

Но я не смог найти, как удалить столбец (или несколько столбцов).

например. Как удалить столбец C и сдвинуть оставшиеся левые?

Спасибо заранее.

4b9b3361

Ответ 2

Вот решение, чтобы сделать его более понятным (спасибо Leniel за ссылку)

Excel.Range range = (Excel.Range)sheet.get_Range("C1", Missing.Value);
range.EntireColumn.Delete(Missing.Value);
System.Runtime.InteropServices.Marshal.ReleaseComObject(range);

Ответ 3

Это был первый результат, который я нажал, и удаление столбца в Excel не требует столько кода, сколько предлагают текущие ответы. На самом деле (при условии, что у вас уже есть объект Worksheet, указанный ниже как mySheet), все, что нужно для первоначального вопроса:

mySheet.Columns["C"].Delete();

Если вы хотите удалить несколько столбцов, то:

mySheet.Columns["C:D"].Delete();

Вы можете указать переменную в методе Delete (см. Https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.excel.xldeleteshiftdirection?view=excel-pia), т.е. mySheet.Columns["C"].Delete(xlShiftToLeft) но в этом нет необходимости, так как метод Delete достаточно умен, чтобы понять, что Range вы выбираете, представляет собой один столбец, поэтому будет делать это автоматически.

Вы также можете использовать числовое значение для обозначения столбца, т.е. mySheet.Columns[2].Delete()