シートオプションのタイトル行について

2,116 views
Skip to first unread message

saka

unread,
Dec 14, 2009, 1:56:15 AM12/14/09
to excella
お世話になります。

テンプレートにてタイトル行の設定を行ったxlsファイルですが、
ローカルへの単純出力の場合、タイトル行の設定は引き継がれ
Servletを使用し、ダウンロードを行った場合、タイトル行の設定がなくなってしまいます。

上記2つの出力方法で、Bookの生成時に何か違うことをやっているようにも見えず、
詰まっています。

Servletからのダウンロードでタイトル行を設定する方法があれば教えていただけますでしょうか。

以下、環境です。

Eclipse:3.5.1
TomCat:5.5
JDK:5.0_21
excella-core:1.4
excella-reports:1.2

以上、よろしくお願いいたします。

横井@bbreak

unread,
Dec 14, 2009, 5:48:17 AM12/14/09
to excella
横井です。

ExcelExporterと、ExcelOutputStreamExporterで試してみましたが
どちらも正常にタイトル行が設定されていました。

出力方法にかかわらず、出力された結果はバイナリレベルで一致するため
動きも同じになるはずなのですが、試しにローカルに出力したファイルと
Tomcatからダウンロードしたファイルをバイナリレベルで比較してみるとどうなりますか?

↓バイナリ比較ソフト
http://www.vector.co.jp/soft/dl/win95/util/se214406.html

もし差分があるようであれば、テンプレート or プログラムに違いがあるのではないかと思います。

以上、よろしくお願いします。

saka

unread,
Dec 15, 2009, 2:36:54 AM12/15/09
to excella
お世話になります。

その後、どこまで調べていたのかわからなくなり、
一から調べていたところ、原因が判明しました。
ローカル出力、ダウンロードで動きが変わるというのは勘違いでした。

ReportSheet outputSheet = new ReportSheet( "シート名");
でシートを作成するときに、別名で作成すると消えてしまっていたようです。

シート名を変更しなければ問題ないので、ひとまずはやりたいことができました。

ただ、テンプレートに1シートだけ準備し、それを基に複数シート作成する場合問題があります。
何か設定する方法があるのでしょうか。

以上、よろしくお願いいたします。


On 12月14日, 午後7:48, 横井@bbreak <yo...@bbreak.co.jp> wrote:
> 横井です。
>
> ExcelExporterと、ExcelOutputStreamExporterで試してみましたが
> どちらも正常にタイトル行が設定されていました。
>
> 出力方法にかかわらず、出力された結果はバイナリレベルで一致するため
> 動きも同じになるはずなのですが、試しにローカルに出力したファイルと
> Tomcatからダウンロードしたファイルをバイナリレベルで比較してみるとどうなりますか?
>
> ↓バイナリ比較ソフトhttp://www.vector.co.jp/soft/dl/win95/util/se214406.html
>
> もし差分があるようであれば、テンプレート or プログラムに違いがあるのではないかと思います。
>
> 以上、よろしくお願いします。
>
> On 12月14日, 午後3:56, saka <sa3...@gmail.com> wrote:
>
>
>
> > お世話になります。
>
> > テンプレートにてタイトル行の設定を行ったxlsファイルですが、
> > ローカルへの単純出力の場合、タイトル行の設定は引き継がれ
> > Servletを使用し、ダウンロードを行った場合、タイトル行の設定がなくなってしまいます。
>
> > 上記2つの出力方法で、Bookの生成時に何か違うことをやっているようにも見えず、
> > 詰まっています。
>
> > Servletからのダウンロードでタイトル行を設定する方法があれば教えていただけますでしょうか。
>
> > 以下、環境です。
>
> > Eclipse:3.5.1
> > TomCat:5.5
> > JDK:5.0_21
> > excella-core:1.4
> > excella-reports:1.2
>
> > 以上、よろしくお願いいたします。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

横井@bbreak

unread,
Dec 15, 2009, 6:39:31 AM12/15/09
to excella
横井です。

なるほど、そういう事でしたか…
シート名の変更や1シートから展開する場合には
内部的にPOIのcloneSheet()を呼んでいるのですが、
cloneSheet()では印刷タイトルの設定はコピーされないようですね。

APIから設定できないかとPrintSetupあたりも見てみたのですが、
ざっと見た感じだと見当たらないので難しいかもしれません…
もう少し調べてみて、もし見つかったら連絡します。

以上、よろしくお願いします。
> > - 引用テキストを表示 -- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

oni

unread,
Jan 4, 2010, 3:18:14 AM1/4/10
to excella

お世話になります。
鬼といいます。

割り込みで恐縮ですが、
その後、タイトル行の設定はどうなりましたでしょうか?

年明け早々、同じ事象に遭遇し、
シートを動的に複製するようなパターンのため、
なんとか回避策がないか調べています。

以上、よろしくお願いいたします。

横井@bbreak

unread,
Jan 4, 2010, 4:42:49 AM1/4/10
to excella
鬼さん

横井です。

再度探してみたところ、APIからなら設定する方法が見つかりました。

Workbook.setRepeatingRowsAndColumns(int sheetIndex, int startColumn,
int endColumn, int startRow, int endRow)

こちらを利用すると、印刷タイトルのタイトル行、タイトル列の設定ができます。
ExCellaで利用する場合には下記のようなイメージになります

ReportProcessor reportProcessor = new ReportProcessor();
reportProcessor.addReportProcessListener( new ReportProcessListener(){
public void postBookParse( Workbook workbook, ReportBook
reportBook) {
// ワークブックの全シートに印刷タイトルを設定
int sheetCnt = workbook.getNumberOfSheets();
for( int cnt = 0; cnt < sheetCnt; cnt++){
workbook.setRepeatingRowsAndColumns( cnt, 1, 7, 1, 2);
}
}
});

xlsで動作する事は確認しましたが、ひとまずこちらでいかがでしょうか。

以上、よろしくお願いします。

oni

unread,
Jan 5, 2010, 1:58:14 AM1/5/10
to excella

横井様

お世話になります。
鬼です。

返信遅れました。

いただいたレスの情報をもとに
試してみたところ、当初やりたかった動作が実現できました。
ありがとうございました。

他に方法がないかと、テンプレートに必要シートを全種持たせて、
対象だけを利用する方法も試しましたが、
「テンプレートから出力ファイルに出力するシートを選択できないの でしょうか? 」
の記事と同じように、Excelのエラーとなったためどうしようかと考えていたところでした。

当面は上記対応でやってみようと思います。
迅速な回答大変助かりました。

以上です。

Reply all
Reply to author
Forward
0 new messages