Apache POI – HSSF – セル内の横位置を設定するには
セル内の横位置を設定するには、HSSFCellStyleクラスのsetAlignmentメソッドを使用します。
setAlignmentメソッドで指定できる横位置は以下の通りです。
横位置 | HSSFCellStyleクラスで定義されている値 |
---|---|
標準 | HSSFCellStyle.ALIGN_GENERAL |
左詰め | HSSFCellStyle.ALIGN_LEFT |
中央揃え | HSSFCellStyle.ALIGN_CENTER |
右詰め | HSSFCellStyle.ALIGN_RIGHT |
繰り返し | HSSFCellStyle.ALIGN_FILL |
両端揃え | HSSFCellStyle.ALIGN_JUSTIFY |
選択範囲内で中央 | HSSFCellStyle.ALIGN_CENTER_SELECTION |
package net.tk_factory.example.apache.poi.hssf.cell; import java.io.FileOutputStream; import java.io.IOException; import net.tk_factory.example.AbstractExample; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; /** * Apache POI-HSSFを使用したサンプルプログラムです。<br/> * <br/> * <b>内容</b> * <ol type="1"> * <li>セル内の横位置を設定します。</li> * </ol> * @author Takafumi Kondo (TK Factory) */ public class ExampleSetAlignment extends AbstractExample { /** クラス名 */ private static final String CLASS_NAME = ExampleSetAlignment.class.getSimpleName(); /** ロガー */ private static final Logger LOGGER = Logger.getLogger(ExampleSetAlignment.class.getName()); /** 出力ファイル名 */ private static final String OUT_FILE_NAME = EXAMPLE_FILE_DIRECTORY + CLASS_NAME + "Out.xls"; /** * ExampleSetAlignmentオブジェクトを構築すると、 * UnsupportedOperationExceptionがスローされます。<br/> */ protected ExampleSetAlignment() { throw new UnsupportedOperationException(); } /** * mainメソッドです。<br/> * * @param args 引数 */ public static void main(String[] args) { LOGGER.info("[START]" + CLASS_NAME); FileOutputStream out = null; try { //すでに出力ファイルが存在している場合は削除する deleteExistsFile(OUT_FILE_NAME); //ワークブックを生成する HSSFWorkbook workbook = new HSSFWorkbook(); //シートを追加する HSSFSheet sheet = workbook.createSheet(); //行を追加する HSSFRow[] rows = new HSSFRow[7]; for (int i = 0; i < rows.length; i++) { rows[i] = sheet.createRow(i); } //横位置が「標準」のセルを追加する createCell(workbook, rows[0], 0, "ALIGN_GENERAL", HSSFCellStyle.ALIGN_GENERAL); //横位置が「左詰め」のセルを追加する createCell(workbook, rows[1], 0, "ALIGN_LEFT", HSSFCellStyle.ALIGN_LEFT); //横位置が「中央揃え」のセルを追加する createCell(workbook, rows[2], 0, "ALIGN_CENTER", HSSFCellStyle.ALIGN_CENTER); //横位置が「右詰め」のセルを追加する createCell(workbook, rows[3], 0, "ALIGN_RIGHT", HSSFCellStyle.ALIGN_RIGHT); //横位置が「繰り返し」のセルを追加する createCell(workbook, rows[4], 0, "ALIGN_FILL", HSSFCellStyle.ALIGN_FILL); //横位置が「両端揃え」のセルを追加する createCell(workbook, rows[5], 0, "ALIGN_JUSTIFY", HSSFCellStyle.ALIGN_JUSTIFY); //横位置が「選択範囲内で中央」のセルを追加する createCell(workbook, rows[6], 0, "ALIGN_CENTER_SELECTION", HSSFCellStyle.ALIGN_CENTER_SELECTION); //ファイルを保存する out = new FileOutputStream(OUT_FILE_NAME); workbook.write(out); } catch (IOException ioex) { LOGGER.error(getStackTrace(ioex)); } finally { try { if (out != null) { out.close(); } } catch (IOException ioex) { LOGGER.error(getStackTrace(ioex)); } LOGGER.info("[E N D]" + CLASS_NAME); } } /** * セルを作成します。<br/> * 作成したセルに指定された横位置を設定します。<br/> * * @param workbook ワークブック * @param row 行 * @param column カラム位置のインデックス * @param text セルに出力する文字列 * @param alignment 横位置 */ private static void createCell( HSSFWorkbook workbook, HSSFRow row, int column, String text, short alignment) { //セルを追加する HSSFCell cell = row.createCell(column); //セルに文字列を設定する cell.setCellValue(new HSSFRichTextString(text)); //セル内の横位置を設定する HSSFCellStyle style = workbook.createCellStyle(); style.setAlignment(alignment); cell.setCellStyle(style); } }
関連記事
ソースを見直し、一部、修正しました。