Apache POIを使って、Excelの印刷範囲を設定するサンプル
Apache POIを使ってExcelファイルを作成します。
 また、都道府県のデータをセルにセットしている5行2列に対して、印刷領域を設定します。
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 53 54 55 56 57 58 59 60 61 62 63 64 65  | import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; 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 ExcelPrintAreaTest {     public static void main(String[] args) {         //データ準備         List<Pref> prefList = new ArrayList<Pref>();         prefList.add(new Pref("01","北海道"));         prefList.add(new Pref("02","青森県"));         prefList.add(new Pref("03","岩手県"));         prefList.add(new Pref("04","宮城県"));         prefList.add(new Pref("05","秋田県"));         //ワークブック作成         try (Workbook workbook = new XSSFWorkbook();             FileOutputStream outputStream = new FileOutputStream("c:\\work\\test.xlsx")) {             //シート作成             Sheet sheet = workbook.createSheet("しーと1");             //印刷領域の範囲内にデータ書き込み             for (int i=0 ; i<prefList.size() ; i++) {                 Pref pref = prefList.get(i);                 Row row = sheet.createRow(i);                 row.createCell(0).setCellValue(Integer.parseInt(pref.code));                 row.createCell(1).setCellValue(pref.name);             }             //印刷領域の範囲外にデータ書き込み             Row row = sheet.getRow(0);             row.createCell(3).setCellValue("印刷範囲外のセル");             //印刷領域を設定             workbook.setPrintArea(0, "A1:B5");             //ファイル出力             workbook.write(outputStream);         } catch (IOException e) {             e.printStackTrace();         }     } } class Pref{     public String code = null;     public String name = null;     public Pref(String code, String name) {         this.code = code;         this.name = name;     } }  | 
実行結果
こんな感じでExcelファイルに印刷領域が設定されます。
 ![]()
サンプルの解説
Workbook#setPrintArea(int, String)で印刷領域を設定できます。
 第1引数は、シートのインデックス。このサンプルではシートは1つしかないので、0。
 第2引数は、印刷したい範囲のセルを指定します。
※このコードを使用するには、別途Apache POIの入手が必要です。
 入手方法などはこちらの記事に書いてあります。















