ExcelをCOMを自力で用意する
のである。ぶっちゃけ素直にエクセル使えといいたいが、セル機能実装を考えるとありがたい
ものごっつ基礎からいく
まずは、プロジェクトの参照設定にExcelのcomを追加する
ここで開発機にExcelがないとcom一覧には(当然)Excelは表示されない。ガッデム
残念ながらExcelなんてブルジョアーじゃないので、こちらを要しない方向で行く
要はMicrosoft Excel 11.0 Object Libraryが欲しいわけだ。こいつはExcelとかのインストール時に引っ付いてくるライブラリ
XPのCOMは公開されている
http://www.microsoft.com/downloads/details.aspx?FamilyId=C41BD61E-3060-4F71-A6B4-01FEBA508E52&displaylang=en
これを導入すると、以下のライブラリが追加される
* adodb.dll * dao.dll * Microsoft.Office.Interop.Access.dll * Microsoft.Office.Interop.Excel.dll * Microsoft.Office.Interop.FrontPage.dll * Microsoft.Office.Interop.FrontPageEditor.dll * Microsoft.Office.Interop.Graph.dll * Microsoft.Office.Interop.Outlook.dll * Microsoft.Office.Interop.OutlookViewCtl.dll * Microsoft.Office.Interop.Owc.dll * Microsoft.Office.Interop.PowerPoint.dll * Microsoft.Office.Interop.Publisher.dll * Microsoft.Office.Interop.SmartTag.dll * Microsoft.Office.Interop.Visio.dll * Microsoft.Office.Interop.Word.dll * Microsoft.Vbe.Interop.dll * mscomctl.dll * msdatasrc.dll * office.dll * stdole.dll
あるぞ!Microsoft.Office.Interop.Excel.dllがある!
公開されてなかったらどうしようかと思ったぜ…。「使いたいなら買えよ」とか平気で言えてしまう(実際はどうかさておいて)のがMSの恐い所
独占禁止法って偉大だね(違
落としたexeを実行するとこんな画面が出る。YES!
すると、「おめぇさんは、どこのディレクトリにインストするんだべ?」とディレクトリ指定が出る
好きな位置に落とす
んで、プロジェクト参照の設定でdllを指定しよう。MS製エディタなら「参照」のタブからファイル指定できる
んじゃ、インスタンス作ろうぜ
Microsoft.Office.Interop.Excel.Application myexcel = new Microsoft.Office.Interop.Excel.Application();
…なげぇ。まあここら辺の長さはどうとでも出来る(別の箇所にうっちゃえる)のでどうでもいい
これでok。以下は素直にプログラミングの時間である
いうまでも無い話だけど、実行機にExcelが無ければ、インスタンスを初期化した時点で例外エラーが出る
当たり前な話