印刷するときは、やっぱりページ番号とか付けたいですよね。
こちらはExcelの場合。
Apache POI Excelのヘッダー・フッターを設定するサンプル
ヘッダ・フッタを設定したExcelファイルを作成します。
ヘッダには、シート名、日付、時刻。フッタには、ページ番号とページ総数を出力します。
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 | import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hssf.usermodel.HeaderFooter; import org.apache.poi.ss.usermodel.Footer; import org.apache.poi.ss.usermodel.Header; 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 ExcelHeaderFooterTest { public static void main(String[] args) { //ワークブック作成 try (Workbook workbook = new XSSFWorkbook()) { //シート作成 Sheet sheet = workbook.createSheet("しーと1"); //とりあえず左上のセルに値を書き込み Row row = sheet.createRow(0); row.createCell(0).setCellValue("てすと"); // ヘッダーの指定 Header header = sheet.getHeader(); header.setCenter(HeaderFooter.tab()); header.setRight(HeaderFooter.date() + " " + HeaderFooter.time()); // フッターの指定 Footer footer = sheet.getFooter(); footer.setCenter(HeaderFooter.page() + " / " + HeaderFooter.numPages()); //ファイル出力 try (FileOutputStream outputStream = new FileOutputStream("c:\\work\\test.xlsx")) { workbook.write(outputStream); } } catch (IOException e) { e.printStackTrace(); } } } |
実行結果
こんな感じで、ヘッダ・フッタを設定できます。
サンプルの解説
Sheet#getHeader()で、ヘッダに関する操作ができます。フッタの場合は、Sheet#getFooter()ですね。
Excelの場合、ヘッダ・フッタともに左・中央・右に分かれていますので、Header#setCenter(String)のように位置別にセットします。
直接文字列をセットしても良いですが、HeaderFooterクラスを使うと、Excelにビルトインされている日付、ページなどの書式が使えるので便利です。
※このコードを使用するには、別途Apache POIの入手が必要です。
入手方法などはこちらの記事に書いてあります。