[Seasar-user:13757] Re: [Fisshplate]セルのスタイルのコピーについて

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2008年 4月 15日 (火) 16:05:42 JST


六様

お世話になっています。前田です。

ご回答ありがとうございます。
そのような理由があったんですね。

特に問題が無いようですので、このコードを使用していきます。
もし、使用中に不具合などが発生した場合は、ご報告いたします。

よろしくお願いいたします。


>こんにちは、Fisshplateコミッタの六です。
>レポート有難う御座います。
>
>Styleのインスタンスを都度生成しているのは
>以前のバージョンで出力ファイルをスクラッチで生成していた頃の名残かと思います。
>POIでWorkbookを生成すると、フォントや表示書式がシンプルなものしかなく、
>テンプレートのスタイルをそのままSetしても反映されなかった事があります。
>
>ですが、現在は色々と経緯がありまして、テンプレートファイルを読み込んで
>そのまま出力ファイルとする仕様に変更になっていますので、
>ご提示のコードで問題がないかも知れません。
>
>現在ちょっと立て込んでいるので検証出来ませんが、
>検証後問題が無ければ取り込ませて頂きます。
>またご報告致しますのでしばらくお待ち下さい。
>よろしくお願いします。
>
>08/04/15 に [E-MAIL ADDRESS DELETED]<[E-MAIL ADDRESS DELETED]>
>さんは書きました:
>> お世話になっております。前田と申します。
>>
>>  JavaからExcelを出力するためにFisshplateを使用しています。
>>  以下のような現象が発生し、原因も特定しました。
>>  これに関してご質問させていただきたく。
>>
>>  現象
>>  セル数の多いExcelを出力すると、「書式を追加できません」
>>  というエラーが発生し、ファイルを開けない。
>>
>>  原因
>>  セルのスタイルを1つ1つのセルに対して作成しているために、
>>  セル数の増加に伴いスタイルの数も増加し、上限を超えるため。
>>
>>  対策
>>  AbstractCellクラスのcopyCellStyleを以下のように変更しました。
>>
>>  protected void copyCellStyle(FPContext context, HSSFCell outCell) {
>>         HSSFCell hssfCell = cell.getHSSFCell();
>>         HSSFCellStyle templateStyle = hssfCell.getCellStyle();
>>         outCell.setCellStyle(templateStyle);
>>         if(isMergedCell){
>>                 mergeCell(context);
>>         }
>>  }
>>
>>  上記のように書き直すと、同じスタイルが使用されるため、
>>  書式の上限を超えることはなくなりました。
>>
>>  ご質問内容
>>  スタイルを1つ1つコピーしない場合に、発生する問題、不具合を
>>  ご存知でしたら教えていただきたく。
>>  (私の方では、簡単なExcelで試しただけですが、問題は発生していません)
>>
>>  環境
>>  ・Fisshplate 0.1.2
>>  ・Excel 2000
>>
>>  よろしくお願いいたします。
>>  _______________________________________________
>>  Seasar-user mailing list
>>  [E-MAIL ADDRESS DELETED]
>>  https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内