Автоматизация Excel C #: Как удалить столбец? - PullRequest
10 голосов
/ 19 августа 2010

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

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

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

Заранее спасибо.

Ответы [ 3 ]

19 голосов
/ 19 августа 2010

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

Excel.Range range = (Excel.Range)sheet.get_Range("C1", Missing.Value);
range.EntireColumn.Delete(Missing.Value);
System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
4 голосов
/ 19 августа 2010
0 голосов
/ 10 июня 2019

Это был первый результат, который я нажал, и удаление столбца в 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()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...