投稿

12月, 2018の投稿を表示しています

Excel POIで セル結合を使う(追加・削除)はやめた方が無難

イメージ
Excel POI Ver3.17 セル結合情報は「sheet.getMergedRegions()」で取得できます セル結合の削除は「sheet.removeMergedRegion(index)」で出来ます。 (削除すると内部が減るので、再取得、またはIndexの大きいほうから消すこと) セル結合の追加は「sheet.addMergedRegion(CellRangeAddress)」で出来ます。 普通に考えたら、削除時だけ注意すればそんなに難しくないのですが… これがめちゃくちゃ遅い。超遅い。死ぬほど遅い… 約20000件のデータを下記例のフォーマットでエクセルに出力する時… 1時間以上 かかりました… 【No、発生日時、種類、対象、内容】の各入力欄をセル結合する人が多いのかなぁと思ってます。(私はそうでした) その場合、POIで行う場合、下記ソースの様に「行追加→スタイルのコピー→罫線追加→値の追加」の順番になると思います // 反映元行を取得 final Row srcRow = CellUtil.getRow(copySrcIndex, this.sheet); // 反映先行を取得 final Row destRow = CellUtil.getRow(copyDestIndex, this.sheet); final CellRangeAddress address = new CellRangeAddress(destRow.getRowNum(), destRow.getRowNum(), 1, 2); RegionUtil.setBorderTop(BorderStyle.THIN, address, this.sheet); RegionUtil.setBorderRight(BorderStyle.THIN, address, this.sheet); RegionUtil.s...

Extjs の hbox vbox の設定…

vbox: https://docs.sencha.com/extjs/4.2.6/extjs-build/examples/layout/vbox.html hbox: https://docs.sencha.com/extjs/4.2.6/extjs-build/examples/layout/hbox.html border: https://docs.sencha.com/extjs/4.2.6/extjs-build/examples/layout/border.html table: https://docs.sencha.com/extjs/4.2.6/extjs-build/examples/layout/table.html

Apache Poi 4.0.1 はまだ使えませんな…

sheet.shiftRows を使うと、スタイルは消えるは行はまともに動かないわ…散々でした。 3.17 にしました… 逆に言えば、shiftRows 以外はそれなりに動いてるから大丈夫なんだけどなぁ… 4.0はいつごろまともに使えるようになるのかしら…

やっぱり難しいExcelPoi

POIでオートシェイプの作成 http://argius.hatenablog.jp/entry/2015/05/26/112259 オートシェイプの細かい設定 https://ohbarye.hatenablog.jp/entry/2014/04/28/100400 行の削除:セル結合の解除 https://www.sodo-shed.com/archives/5271 スタイル編集 http://www.ne.jp/asahi/hishidama/home/tech/apache/poi/cellstyle.html https://www.javadrive.jp/poi/style/index2.html

悲しいかな…

年々ズボンのベルト穴が一つずつずれていく…はぁ…