如何通过编程删除一个列?

12

如何在Excel中删除一列或多列?

例如,如何删除列C并将其余列左移?

3个回答

22

以下是使其更清晰的解决方案(感谢Leniel提供的链接)

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

1
什么是"sheet"...你是如何获取它的? - Si8
http://stackoverflow.com/questions/41170869/how-to-delete-entire-row-if-a-match-is-made-in-a-cell-in-that-row - Si8
谢谢,它节省了我的时间。 - Zafar

6
这是我找到的第一个结果,从Excel表格中删除列不需要像当前答案所建议的那样写很多代码。事实上(假设您已经有了一个名为mySheetWorksheet对象),原始问题所需的只是以下内容:
mySheet.Columns["C"].Delete();

如果您想删除多个列,则需要执行以下步骤:
mySheet.Columns["C:D"].Delete();

您可以在 Delete 方法中指定变量(请参见https://learn.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()


但是,如果该列下有大量行,则使用mysheet.Columns("C").Delete()会使应用程序无响应。 - mukul nagpal

3

1
一个链接有问题...你能否提炼出答案并提供一个链接的参考? - ΩmegaMan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接