Apache POI – HSSF – 行を移動するには
行を移動するには、HSSFSheetクラスのshiftRowsメソッドを使用します。
package net.tk_factory.example.apache.poi.hssf.row;
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.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* Apache POI-HSSFを使用したサンプルプログラムです。
*
* 内容
*
-
*
- 行を移動します。
*
* @author Takafumi Kondo (TK Factory)
*/
public class ExampleShiftRows extends AbstractExample
{
/** クラス名 */
private static final String CLASS_NAME =
ExampleShiftRows.class.getSimpleName();
/** ロガー */
private static final Logger LOGGER =
Logger.getLogger(ExampleShiftRows.class.getName());
/** 出力ファイル名 */
private static final String OUT_FILE_NAME =
EXAMPLE_FILE_DIRECTORY + CLASS_NAME + “Out.xls”;
/**
* ExampleShiftRowsオブジェクトを構築すると、
* UnsupportedOperationExceptionがスローされます。
*/
protected ExampleShiftRows()
{
throw new UnsupportedOperationException();
}
/**
* mainメソッドです。
*
* @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();
//行を追加する
for (int i = 0; i < 10; i++)
{
HSSFRow row = sheet.createRow(i);
HSSFCell cell = row.createCell(0);
cell.setCellValue(i + 1);
}
//行を移動する(1行目から2行目までを下に5行移動する)
sheet.shiftRows(0, 1, 5);
//行を移動する(3行目から4行目までを上に1行移動する)
//※上に移動させる場合はマイナス値を指定する
sheet.shiftRows(2, 3, -1);
//ファイルを保存する
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);
}
}
}
[/java]
作成されたファイルを開くと、以下のように表示されます。
関連記事
サンプルプログラムを実行して作成されたファイルのイメージを追加しました。
ソースを見直し、一部、修正しました。