C#からExcelを操作する | 【初心者・学生】プログラマ、オキャの技術ブログ【大歓迎】

C#からExcelを操作する

簡単なようで難しいので記述。

まずはVisual Studio上で「メニュー」→「プロジェクト」→「参照の追加」でCOMを選択し、【Microsoft Excel ○○.○ Object Library】(○は数字が入る)を追加しておく。

そうすると、Excel操作に必要なライブラリが使えるようになって、下記のサンプルソースが使用できるようになる。
参照を追加しておかないと、エラーでコンパイルできないから注意が必要です。


以下サンプル。
サンプルは、すでにあるシートを複製する処理。



private void sampleProc()
{
Excel.Application app = app = new Excel.Application();
Excel.Workbook workBook = null;
app.Visible = true;

// ワークブックの展開
workBook = (Excel.Workbook)(app.Workbooks.Open(
this.textBox2.Text,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing));

string sheetName = "sheet1";

// シートインデックス取得
int idx = getSheetIndex(sheetName, workBook.Sheets);

// シートの洗濯
Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Sheets[idx];

// シートのコピー
workSheet.Copy(workSheet, Type.Missing);

// 保存・終了
workBook.Close(true, Type.Missing, Type.Missing);
app.Quit();
}


private int getSheetIndex(string sheetName, Excel.Sheets shs)
{
int i = 0;
foreach (Excel.Worksheet sh in shs)
{
if (sheetName == sh.Name)
{
return i + 1;
}
i += 1;
}
return 0;

}