Excelで1つの列(または複数の列)を削除するにはどうすればよいですか?
例えば。列Cを削除し、残りを左にシフトするにはどうすればよいですか?
これがより明確にするための解決策です(リンクを提供してくれたLenielに感謝します)
Excel.Range range = (Excel.Range)sheet.get_Range("C1", Missing.Value);
range.EntireColumn.Delete(Missing.Value);
System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
ここにそれを行う方法があります:
http://bytes.com/topic/c-sharp/answers/258110-how-do-you-delete-excel-column
http://quicktestprofessional.wordpress.com/2008/02/14/delete-columns-from-xl-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()