LoginSignup
0
0

More than 3 years have passed since last update.

【Java】Apache POIで印刷時のシートの拡大縮小の設定が上手くいかなかった原因

Posted at

概要

Apache POIを使用して、エクセル帳票を出力する処理の実装を行っている際に、
印刷時の拡大縮小の設定を処理内で行ったが、上手く設定されない事象が発生した。

上手くいかなかった際の処理

FailedExample.java
    workbook.cloneSheet(0, "TestSheet");

    sheet = workbook.getSheetAt(1);
    // 印刷時タイトル設定
    sheet.setRepeatingRows(new CellRangeAddress(0, 2, -1, -1));
    sheet.setRepeatingColumns(new CellRangeAddress(-1, -1, 0, 9));

    // 印刷時の拡大縮小の設定
    PrintSetup ps = sheet.getPrintSetup();
    ps.setScale((short)40);

上記のように先に印刷時のタイトルの設定を行ってから、拡大縮小の設定を行っていた。
そうすると、なぜか出力されるエクセルに拡大縮小の設定が反映されなかった。

上手くいった際の処理

FailedExample.java
    workbook.cloneSheet(0, "TestSheet");

    sheet = workbook.getSheetAt(1);

    // 印刷時の拡大縮小の設定
    PrintSetup ps = sheet.getPrintSetup();
    ps.setScale((short)40);

    // 印刷時タイトル設定
    sheet.setRepeatingRows(new CellRangeAddress(0, 2, -1, -1));
    sheet.setRepeatingColumns(new CellRangeAddress(-1, -1, 0, 9));

先に拡大縮小の設定を行い、後にタイトルの設定を行うよう、先ほどと処理の順番を入れ替えると、
拡大縮小の設定が反映されていた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0