【发布时间】:2010-08-19 00:00:48
【问题描述】:
如何在 Excel 中删除一列(或多列)?
例如。如何删除C列并将其余的向左移动?
【问题讨论】:
标签: c# excel excel-interop
如何在 Excel 中删除一列(或多列)?
例如。如何删除C列并将其余的向左移动?
【问题讨论】:
标签: c# excel excel-interop
这是使它更清晰的解决方案(感谢Leniel提供链接)
Excel.Range range = (Excel.Range)sheet.get_Range("C1", Missing.Value);
range.EntireColumn.Delete(Missing.Value);
System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
【讨论】:
sheet...你是怎么知道的?
【讨论】:
这是我点击的第一个结果,删除 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()
【讨论】: