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&#91;i&#93; = sheet.createRow(i);
            }

            //横位置が「標準」のセルを追加する
            createCell(workbook, rows&#91;0&#93;, 0,
                    "ALIGN_GENERAL",
                    HSSFCellStyle.ALIGN_GENERAL);
            //横位置が「左詰め」のセルを追加する
            createCell(workbook, rows&#91;1&#93;, 0,
                    "ALIGN_LEFT",
                    HSSFCellStyle.ALIGN_LEFT);
            //横位置が「中央揃え」のセルを追加する
            createCell(workbook, rows&#91;2&#93;, 0,
                    "ALIGN_CENTER",
                    HSSFCellStyle.ALIGN_CENTER);
            //横位置が「右詰め」のセルを追加する
            createCell(workbook, rows&#91;3&#93;, 0,
                    "ALIGN_RIGHT",
                    HSSFCellStyle.ALIGN_RIGHT);
            //横位置が「繰り返し」のセルを追加する
            createCell(workbook, rows&#91;4&#93;, 0,
                    "ALIGN_FILL",
                    HSSFCellStyle.ALIGN_FILL);
            //横位置が「両端揃え」のセルを追加する
            createCell(workbook, rows&#91;5&#93;, 0,
                    "ALIGN_JUSTIFY",
                    HSSFCellStyle.ALIGN_JUSTIFY);
            //横位置が「選択範囲内で中央」のセルを追加する
            createCell(workbook, rows&#91;6&#93;, 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("&#91;E N D&#93;" + 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);
    }
}

作成されたファイルを開くと、以下のように表示されます。
ExampleSetAlignmentOut.xls(標準)

ExampleSetAlignmentOut.xls(左詰め)

ExampleSetAlignmentOut.xls(中央揃え)

ExampleSetAlignmentOut.xls(右詰め)

ExampleSetAlignmentOut.xls(繰り返し)

ExampleSetAlignmentOut.xls(両端揃え)

ExampleSetAlignmentOut.xls(選択範囲内で中央)

関連記事

  1. ソースを見直し、一部、修正しました。

  1. トラックバック 0

return top