タイトル : Re: VB6環境で xlsxファイルの出力 投稿日 : 2013/06/17(Mon) 10:52 投稿者 : 魔界の仮面弁士
> VB6環境で作成したアプリケーションで、xlsファイル(EXCEL2000〜2003形式)を出力しています。 現状はどのようにして作成していますか? *.xls のバイナリーフォーマットは公開されてはいますが、よもや、 Excel ファイルの BIFF バイナリを手動生成しているわけでは無いのですよね? http://www.microsoft.com/openspecifications/en/us/programs/osp/office-file-formats/default.aspx Jet I-ISAM Export を使用しているのか、Excel オートメーションを使っているのか、 サードパーティー製品(Excel Creator 等)なのか…。 (Jet や Excel Creator 等の場合、実行環境に Excel は無くても済みます) > VB6で xlsxファイル(EXCEL2007形式)を出力することは可能でしょうか。 可能です。Office Open XML の仕様は公開されていますので、極端な話、手間さえ 惜しまなければ xlsx のファイルを自前で生成することも、理論的には可能です。 http://ja.wikipedia.org/wiki/Office_Open_XML 実際には自己生成は現実的では無いため、何らかのライブラリやツールを 併用した方が良いでしょう。 > ライブラリをインポートでxlsファイルを出力可能となる VB6に「インポート」という機能があったかどうかはさておき、「参照設定」の意味であれば、 Excel オートメーションを使う方法(VB6 から Office 2007/2010 を参照設定して利用)や、 サードパーティ製品(Excel Creator 等)を使っての出力などが該当しそうですね。 > xlsファイル出力後、コンバートソフトをキックして xls→xlsx変換させる その方法も使えますが、可能であれば最初から xlsx を生成した方が手っ取り早そうです。 それに、そもそも xls で事足りるようなドキュメントを、わざわざ xlsx に 変換する意味があるのかについても、多少の疑問が残ります。 > VB6環境をnet環境へ移管し、xlsxファイルで出力するように修正する .NET からの生成ならば、CodePlex で公開されている「ClosedXML」あたりが有名ですね。 http://closedxml.codeplex.com/ その他、EPPlus という物もあります。 http://epplus.codeplex.com/ Java 系から移植されてきた NPOI 2.0 という .NET ライブラリも知名度が高いです。 http://npoi.codeplex.com/releases/ あとは…市販パッケージになりますが、SmartXLS、SpreadsheetGear、Excel Creator 等々。 http://www.smartxls.com/ http://www.xlsoft.com/jp/products/SSG/product.html http://www.adv.co.jp/product/product_excelcreator2012.htm なお、.NET 標準で Excel 出力する機能は用意されていません。この点は VB6 と同じです。 ただし、Office を操作するためのライブラリは用意されているため、VB6 と同様に オートメーション操作という形を取ることもできます。ただし、VB6 の頃に比べると ActiveX オブジェクトの解放処理が面倒になっていますので、個人的にはあまりお奨めしません。 また、Microsoft 公式で「Open XML SDK」が提供されていますが、 OOXML SDK 自体、あまり使いやすいものでは無いため個人的にはお奨めしません。 http://www.microsoft.com/ja-jp/download/details.aspx?id=5124 (先の ClosedXML 等は、OpenXMLを使いやすくまとめたライブラリです) |