- PR -

Java & Excel POIでセルにハイパーリンクをセットするには

1
投稿者投稿内容
Meta
常連さん
会議室デビュー日: 2005/11/24
投稿数: 31
投稿日時: 2009-02-05 10:33
現在、Apache POIのHSSFを使ってExcelファイルとしてダウンロード出来るようにプログラムを作成しています。

Excelファイルをダウンロード出来るまでにはなっているのですが、
セルにハイパーリンクを張ることだけができません。

HSSFCellクラスのsetHyperlinkメソッド(javadocを参照)を使えば、
出来る予定だったのですがsetHyperlinkを記述するとコンパイルエラーになってしまい
実装がうまくいきません。

どなたかPOIを使ってハイパーリンクを実装した経験がある方は
教えて頂けないでしょうか?

よろしくお願いします。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-02-05 10:46
どのようなコードでエラーになるとか
どのようなコンパイルエラーが出たとかいう情報が欲しいです。

気になったのはjavadoc見る限りHyperlinkはインターフェースのようですが、
実装したクラスHSSFHyperlinkとか?
を指定していますか?
Meta
常連さん
会議室デビュー日: 2005/11/24
投稿数: 31
投稿日時: 2009-02-05 10:59
すみません、コンパイルエラーというか、
Eclipseの入力支援でクラスHSSFCell内にsetHyperlinkメソッドがでてこないのです。

恐らくクラスHSSFHyperlinkでHyperlinkの設定をして
setHyperlinkメソッドの引数にそれを投げる形になると予想していたのですが。
やまだ
会議室デビュー日: 2009/01/14
投稿数: 8
投稿日時: 2009-02-05 11:40
HSSFHyperlinkクラスは3.1から導入されたようです。
eclipseでsetHyperlinkメソッドが表示されないということは、それ以前のバージョンを使っているのではないでしょうか?
代わりににsetCellFormulaメソッドを利用してHYPERLINK関数を設定してはどうでしょうか?

コード:
hssfCell.setCellFormula("hyperlink(\\"http://www.atmarkit.co.jp\\", \\"atmarkit\\")");

Meta
常連さん
会議室デビュー日: 2005/11/24
投稿数: 31
投稿日時: 2009-02-05 13:22
使用中のバージョンはPOI 2.5.1でした...

今回ハイパーリンクを必要とする理由は、
メールアドレスをクリックしてメールソフトを起動させる。
なのですが、EXCELのHYPERLINK関数でメールソフトを起動させることってできますか?
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-02-05 13:32
mailto: もURLなのでHYPERLINKで設定することは可能だと思いますが、


メールソフトが起動するかはWindowsやMacの設定によってくるのではないかと思います。

やまだ
会議室デビュー日: 2009/01/14
投稿数: 8
投稿日時: 2009-02-05 13:49
それはやってみればわかると思うのですが。。。

メールソフトが起動するかどうかは別にPOIを使わなくてもExcelに直接打ち込んでみれば分かるのことなので、すぐに確認できると思います。
POIを使うにしてもファイルがダウンロードできる状態にまでなっているのであればコードを1行追加するだけで済みますよね・・

あとはデューンさんのおっしゃるように各環境によると思います。
1

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