ApachePOIで、印刷時の余白を設定するサンプルです。
印刷時の余白を設定するには、Sheet#setMargin() を使用します。
サンプルソース
例)余白(上下左右とヘッダー、フッター)を指定する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class PoiSample { public static void main(String[] args) { //Excelデータ生成 Workbook wb = new XSSFWorkbook(); //ブックの生成 Sheet sh = wb.createSheet(); //シートの生成 //文字のセット Row row = sh.createRow(0); //行の生成 Cell cell = row.createCell(0); //セルの生成 cell.setCellValue("余白サンプル"); //文字のセット //余白を設定する sh.setMargin(Sheet.TopMargin, 0.5); //上マージン(0.5インチ(Excel上1.3)) sh.setMargin(Sheet.BottomMargin, 1); //下マージン(1.0インチ(Excel上2.5)) sh.setMargin(Sheet.LeftMargin, 1.5); //左マージン(1.5インチ(Excel上3.8)) sh.setMargin(Sheet.RightMargin, 2.0); //右マージン(2.0インチ(Excel上5.1)) sh.setMargin(Sheet.HeaderMargin, 0.8); //ヘッダーマージン(0.8インチ(Excel上2.0)) sh.setMargin(Sheet.FooterMargin, 1.2); //フッターマージン(1.2インチ(Excel上3.0)) //Excelファイル準備 FileOutputStream out = null; String path = "C:¥¥temp¥¥sample.xlsx"; try { //Excel出力 out = new FileOutputStream(path); wb.write(out); } catch (Exception ex) { ex.printStackTrace(); } finally { try { wb.close(); out.close(); } catch (Exception ex2) { ex2.printStackTrace(); } } } } |
以下のように設定されます。
余白サイズについて
setMarginに指定する値の単位はインチです。
Excel上で指定する単位と異なるためご注意ください。
インチ指定とExcel上の指定の対応は、大体以下のような感じです。
インチ | Excel上の値 |
---|---|
0.5インチ | 1.3 |
0.8インチ | 2.0 |
1.2インチ | 3.0 |
1.0インチ | 2.5 |
1.5インチ | 3.8 |
2.0インチ | 5.1 |