以前はVB.NETからエクセルを使って印刷処理を行うプログラムを作成したことがありました。
エクセル上に雛形となるシートを作成しておいて、そのシートをコピーし、 該当するデータを指定されたセルに当てはめて、印刷を行うというものです。
連続帳票ではなく、A4単票の印刷ではよく行ったものです。
エクセル印字をVBのプログラムから行うためには、エクセルのインストールが必須だったり、 「Microsoft.Office.Interop.Excel」を使ったCOM参照での処理が必要だったりします。
このCOM参照が曲者で、参照を開放しないとエクセルのプロセスがメモリ上に残ったままになったりします。 メモリに残ったままだと、次の印刷ができなかったりと、いろいろ悪さをします。 COM参照をしっかり開放してやれば、問題はないのですが...
やはりパソコンにエクセルがインストールしていないと動かないのがネックです。
そこで、サードパーティ製でエクセル互換のツールが無いかと探したら、 「XLSOFT」から直接エクセルファイルを操作できるツールが出ていました。
それが「SpreadSheetGear」という製品です。(外国製の様で、日本語対応したもののようです)
このツールですがDLLファイルを参照設定して利用しますが、上記のエクセルのCOM参照のオブジェクト内の 関数とほぼ同等の名称を使用している様です。
今回は印刷処理での利用がメインなので、サンプル等を見てみたのですが、 「WorkbookView」を使った印字例はあるのですが、このオブジェクトを使用しない例が なかったので以下の様なソースで試すと、とりあえず印刷はできました。 (何かのご参考までに...)
EXEと同じフォルダに存在する「TEST.xlsx」内の先頭のシートを単に印刷するサンプルです。
.NET開発テクノロジ入門2016年版Visual Studio 2015対応版
エクセル上に雛形となるシートを作成しておいて、そのシートをコピーし、 該当するデータを指定されたセルに当てはめて、印刷を行うというものです。
連続帳票ではなく、A4単票の印刷ではよく行ったものです。
エクセル印字をVBのプログラムから行うためには、エクセルのインストールが必須だったり、 「Microsoft.Office.Interop.Excel」を使ったCOM参照での処理が必要だったりします。
このCOM参照が曲者で、参照を開放しないとエクセルのプロセスがメモリ上に残ったままになったりします。 メモリに残ったままだと、次の印刷ができなかったりと、いろいろ悪さをします。 COM参照をしっかり開放してやれば、問題はないのですが...
やはりパソコンにエクセルがインストールしていないと動かないのがネックです。
そこで、サードパーティ製でエクセル互換のツールが無いかと探したら、 「XLSOFT」から直接エクセルファイルを操作できるツールが出ていました。
それが「SpreadSheetGear」という製品です。(外国製の様で、日本語対応したもののようです)
このツールですがDLLファイルを参照設定して利用しますが、上記のエクセルのCOM参照のオブジェクト内の 関数とほぼ同等の名称を使用している様です。
今回は印刷処理での利用がメインなので、サンプル等を見てみたのですが、 「WorkbookView」を使った印字例はあるのですが、このオブジェクトを使用しない例が なかったので以下の様なソースで試すと、とりあえず印刷はできました。 (何かのご参考までに...)
EXEと同じフォルダに存在する「TEST.xlsx」内の先頭のシートを単に印刷するサンプルです。
.NET開発テクノロジ入門2016年版Visual Studio 2015対応版