倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

PoiBuilder で Quick Guide (13) : シートを1ページにフィット

今回はシートを1ページにフィットさせる (Fit Sheet to One Page) 方法です(一覧)。

Java コード


「シートを1ページにフィットさせる」というのは、印刷の際にシートの内容を1ページに収めるということです。 なので、設定は PrintSetup オブジェクトに対して行います。 このオブジェクトはシートオブジェクトの getPrintSetup() メソッドによって取得できます:

    Workbook wb = new HSSFWorkbook();
    Sheet sheet = wb.createSheet("format sheet");
    PrintSetup ps = sheet.getPrintSetup();

    sheet.setAutobreaks(true);

    ps.setFitHeight((short)1);
    ps.setFitWidth((short)1);

PoiBuilder による構築


PoiBuilder では PrintSetup オブジェクトは sheet ノード下の printSetup ノードによって取得できます。 プロパティの設定方法は特に問題ないかと:

@GrabResolver('http://www5.ocn.ne.jp/~coast/repo/')
@Grab('org.waman.tools:poi-builder:0.0.5')

import org.waman.tools.poi.PoiBuilder

def builder = new PoiBuilder()
def workbook = builder.workbook{
    sheet('format sheet', autobreaks:true){
        printSetup(fitHeight:1, fitWidth:1)
        
        for(i in 0..<100){
            row(i){
                for(j in 0..<20){
                    cell(j, cellValue:"$i:$j")
                }
            }
        }
    }
}

シート内容は適当に付加してあります。

作成されるスプレッドシート


PoiBuilder の構築サンプルによって生成されるシートはこんな感じ:

印刷プレビューを見ると

のように、全ての内容が1ページに集約されてます。
現場で使えるJavaライブラリ

現場で使えるJavaライブラリ


プログラミングGROOVY

プログラミングGROOVY