■ 準備
ソリューションエクスプローラの「参照設定」からExcelを追加する必要がある。http://hwada.hatenablog.com/entry/20110530/1306719910
では、『「COM」タブのMicrosoft Excel 14.0 Object Library』ではなく 『「.NET」タブのMicrosoft.Office.Interop.Excelを追加』とある ※理由は、『「COM」タブのMicrosoft Excel 14.0 Object Library』だと Excelのバージョン依存があるらしい。
■ サンプル
using System.Runtime.InteropServices; using Microsoft.Office.Interop.Excel; using Excel = Microsoft.Office.Interop.Excel; private void button1_Click(object sender, EventArgs e) { var excel = new Excel.Application(); if (excel == null) { MessageBox.Show("Excelないよ"); return; } Workbook workbook = null; Worksheet worksheet = null; try { workbook = excel.Workbooks.Open( @"C:\sample.xls", // オープンするExcelファイル名 Type.Missing, // (省略可能)UpdateLinks (0 / 1 / 2 / 3) Type.Missing, // (省略可能)ReadOnly (True / False ) Type.Missing, // (省略可能)Format // 1:タブ / 2:カンマ (,) / 3:スペース / 4:セミコロン (;) // 5:なし / 6:引数 Delimiterで指定された文字 Type.Missing, // (省略可能)Password Type.Missing, // (省略可能)WriteResPassword Type.Missing, // (省略可能)IgnoreReadOnlyRecommended Type.Missing, // (省略可能)Origin Type.Missing, // (省略可能)Delimiter Type.Missing, // (省略可能)Editable Type.Missing, // (省略可能)Notify Type.Missing, // (省略可能)Converter Type.Missing, // (省略可能)AddToMru Type.Missing, // (省略可能)Local Type.Missing);// (省略可能)CorruptLoad if (workbook == null || workbook.Sheets.Count <= 0) { MessageBox.Show("Sheetがない!?"); return; } worksheet = (Worksheet)workbook.Sheets[1]; // 設定方法1:セル指定 worksheet.Cells[1, 1] = "Sample1! [A,1]"; // 設定方法2:範囲指定 var rangeA2 = worksheet.get_Range("A2", Missing.Value); rangeA2.Value2 = "Sample2! [A, 2]"; // 保存(http://msdn.microsoft.com/ja-jp/library/h1e33e36(v=vs.80).aspx) foreach (Excel.Workbook wkb in excel.Workbooks) { wkb.Save(); } } catch { MessageBox.Show("何かでエラー!?"); } finally { // 開放処理 // [Worksheet] -> [Worksheets] -> [Workbook] -> [Workbooks] -> [Excel Application] // の順に開放すること if (worksheet != null) { Marshal.ReleaseComObject(worksheet); } if (workbook != null) { workbook.Close(true, Type.Missing, Type.Missing); Marshal.ReleaseComObject(workbook); } if (excel != null) { excel.Quit(); Marshal.ReleaseComObject(excel); } } }
参考文献
http://www.atmarkit.co.jp/fdotnet/dotnettips/717excelfile/excelfile.htmlhttp://zatti.blog81.fc2.com/blog-entry-54.html
http://hwada.hatenablog.com/entry/20110530/1306719910
http://tkizawa.cocolog-nifty.com/blog/2008/02/cexcel_90ee.html
http://homepage2.nifty.com/nonnon/SoftSample/CS.NET/SampleExcelOpe.html
http://support.microsoft.com/kb/302084/ja
保存について
http://msdn.microsoft.com/ja-jp/library/h1e33e36(v=vs.80).aspx後で参考になりそうな文献
色々な操作がまとめられているhttp://www.din.or.jp/~graywing/csharp_excel.html
関連記事
Excel
Excel を PDF化するhttps://blogs.yahoo.co.jp/dk521123/30581096.html
Excel を出力する際の注意事項
https://blogs.yahoo.co.jp/dk521123/29462017.html
ASP.NET MVC
【ASP.NET MVC】【VB】 Excel をダウンロードする [1] ~ NetOffice編 ~https://blogs.yahoo.co.jp/dk521123/36015198.html