Apache POI – HSLF – テーブルレイアウトを描くには
テーブルレイアウトを描くには、Tableクラスを使用します。
package net.tk_factory.example.apache.poi.hslf;
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;
import net.tk_factory.example.AbstractExample;
import org.apache.log4j.Logger;
import org.apache.poi.hslf.model.Line;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.Table;
import org.apache.poi.hslf.model.TableCell;
import org.apache.poi.hslf.model.TextBox;
import org.apache.poi.hslf.usermodel.RichTextRun;
import org.apache.poi.hslf.usermodel.SlideShow;
/**
* Apache POI-HSLFを使用したサンプルプログラムです。
*
* 内容
*
-
*
- テーブルレイアウトを描きます。
*
*
* @author Takafumi Kondo (TK Factory)
*/
public class ExampleDrawTableLayout extends AbstractExample
{
/** クラス名 */
private static final String CLASS_NAME =
ExampleDrawTableLayout.class.getSimpleName();
/** ロガー */
private static final Logger LOGGER =
Logger.getLogger(ExampleDrawTableLayout.class.getName());
/** 出力ファイル名 */
private static final String OUT_FILE_NAME =
EXAMPLE_FILE_DIRECTORY + CLASS_NAME + “Out.ppt”;
/**
* ExampleDrawTableLayoutオブジェクトを構築すると、
* UnsupportedOperationExceptionがスローされます。
*/
protected ExampleDrawTableLayout()
{
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);
//プレゼンテーションを生成する
SlideShow ppt = new SlideShow();
//スライドを追加する
Slide slide = ppt.createSlide();
//テーブルレイアウトに表示するデータ
String[][] data =
{
{“INPUT FILE”, “NUMBER OF RECORDS”},
{“Item File”, “11,559”},
{“Vendor File”, “300”},
{“Purchase History File”, “10,000”},
{“Total # of requisitions”, “10,200,038”}
};
//5行2列のテーブルレイアウトを作成する
Table table = new Table(5, 2);
for (int i = 0; i < data.length; i++)
{
for (int j = 0; j < data[i].length; j++)
{
TableCell cell = table.getCell(i, j);
cell.setText(data[i][j]);
RichTextRun rt = cell.getTextRun().getRichTextRuns()[0];
rt.setFontName("Arial");
rt.setFontSize(10);
cell.setVerticalAlignment(TextBox.AnchorMiddle);
cell.setHorizontalAlignment(TextBox.AlignCenter);
}
}
//テーブルの枠線を設定する
Line border = table.createBorder();
border.setLineColor(Color.BLACK);
border.setLineWidth(1.0);
table.setAllBorders(border);
//テーブルのセル幅を設定する
table.setColumnWidth(0, 300);
table.setColumnWidth(1, 150);
slide.addShape(table);
table.moveTo(100, 100);
//ファイルを保存する
out = new FileOutputStream(OUT_FILE_NAME);
ppt.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]
関連記事
コメント 0