- PR -

Javaを使ってExcelを印刷

投稿者投稿内容
PicKel
会議室デビュー日: 2008/11/10
投稿数: 6
投稿日時: 2008-11-11 09:21
java(1.6)でExcelを印刷したいのですが、よいサンプルコードが見つからず困っています。参照URLの方法を探ってはみたものの理解できず、具体的な方法がまだわかっていません。
また上記以外のスタンダードな方法がありましたら、教えていただけないでしょうか。
よろしくお願いいたします。

[ メッセージ編集済み 編集者: PicKel 編集日時 2008-11-11 09:44 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-11 11:07
要件が全く見えないのですが、デスクトップアプリですか?
サーバサイドアプリ(WEB)ですか?
印刷したいファイルはどこにあって、どうやって作られるものですか?

デスクトップアプリで、ローカルのファイルを印刷したい場合、Java6からは、
コード:
java.io.File file = new java.io.File("エクセルのパス");
java.awt.Desktop.getDesktop().print(file);


で可能です。
PicKel
会議室デビュー日: 2008/11/10
投稿数: 6
投稿日時: 2008-11-11 12:36
返信ありがとうございます。できました!

作成しているのはデスクトップアプリです。
印刷したいファイルはjavaプロジェクトのディレクトリにあります。
そのExcelファイルはPOIにて生成しています。

ちなみに、このDesktopクラスを使って印刷プレビューを表示させることは可能でしょうか?

[ メッセージ編集済み 編集者: PicKel 編集日時 2008-11-11 12:37 ]
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2008-11-11 14:29
OpenOffice3.0 とかでも Java動かせます。VBAではないが。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-11 15:57
やってることは、デスクトップでエクセルファイルを右クリックして、
「印刷」を選択するのと同じことです。

記憶が曖昧ですが、Windows版Javaであれば、
Win32APIのShellExecuteに、
パスと"print"というメッセージを渡していたと思います。
あくまでファイルの関連付けに依存した形になります。

つまり、それ以上のことは出来ないので、
マクロか何かで工夫するしかないかもしれないですね。
開いて印刷プレビューを行うWSHを起動するという手も有りだと思います。
ユーザにスクリプトをインストールする必要がありますが、
そっちの方がきめ細かいことができるでしょう。
PicKel
会議室デビュー日: 2008/11/10
投稿数: 6
投稿日時: 2008-11-12 09:24
引用:

MMXさんの書き込み (2008-11-11 14:29) より:
OpenOffice3.0 とかでも Java動かせます。VBAではないが。



ありがとうございます。
印刷はできそうですが、痒いところ(印刷プレビュー)までは手が届きそうにないですかね。もう少し調べてみます。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-12 11:10
引用:

印刷はできそうですが、痒いところ(印刷プレビュー)までは手が届きそうにないですかね。


Pure Javaに拘れば無理ですね。
ExcelとはいえJavaから見れば、
単なる1つの外部アプリに過ぎません。

外部アプリの操作、プロセス管理等、
OSや環境に依存する細かいことをやりたいのであれば、
そもそもJavaを選ぶべきではないでしょう。
PicKel
会議室デビュー日: 2008/11/10
投稿数: 6
投稿日時: 2008-11-12 12:48
引用:

かつのりさんの書き込み (2008-11-11 15:57) より:
マクロか何かで工夫するしかないかもしれないですね。
開いて印刷プレビューを行うWSHを起動するという手も有りだと思います。



ここで質問する前に、参照元記事の書き込みを読んで、WSHでのスクリプト起動を
少し調べておりました。ですが、VBSでの印刷プレビューのスクリプトが書けず、
今まで保留にしておりました。
よろしければ、ヒントをいただけないでしょうか?

引用:

かつのりさんの書き込み (2008-11-12 11:10) より:
外部アプリの操作、プロセス管理等、
OSや環境に依存する細かいことをやりたいのであれば、
そもそもJavaを選ぶべきではないでしょう。



現在の課題がVB.NETの仕様なのです。
VBには充実したPrintPreviewDialogがあるようで……泣けてきます。

[ メッセージ編集済み 編集者: PicKel 編集日時 2008-11-12 12:51 ]

スキルアップ/キャリアアップ(JOB@IT)