1. 製品
  2.   スプレッドシート
  3.   Java
  4.   Apache POI HSSF

Apache POI HSSF

 
 

Microsoft Excel バイナリ ファイル用の Java ライブラリ

オープン ソース Java API により、Excel XLS スプレッドシートの読み取り、書き込み、変換が可能です。

Apache POI HSSF は、Excel '97(-2007) ファイル形式 (BIFF8) の純粋な Java 実装です。無料のオープン ソース API は、Excel XLS スプレッドシートを作成、読み取り、変更、および書き込むための機能を提供します。スプレッドシート データの読み取りだけに関心のある開発者は、イベント モデル API を使用してニーズを満たすことができます。スプレッドシート データを変更するには、ユーザー モデル API を使用できます。ユーザー モデル システムは、低レベルのイベント ユーザー モデルよりも多くのメモリ フットプリントを持っていますが、操作がはるかに簡単であるという大きな利点があることを知っておくことが重要です。

Apache POI HSSF は、シートや数式の操作、色と境界線、フォント、ヘッダーとフッター、形状、データ検証、画像、ハイパーリンクなどを塗りつぶしてセル スタイルを作成するなど、追加の Excel 機能を優れたサポートを提供します。

Previous Next

Apache POI HSSF の使用を開始する

まず、システムに Java Development Kit (JDK) をインストールする必要があります。既にお持ちの場合は、Apache POI の ダウンロード ページに進み、最新の安定版リリースをアーカイブから入手してください。必要なライブラリーを Java プログラムにリンクできる任意のディレクトリーに ZIP ファイルの内容を抽出します。それだけです!

Maven ベースの Java プロジェクトで Apache POI を参照するのはさらに簡単です。必要なのは、pom.xml に次の依存関係を追加し、IDE が Apache POI Jar ファイルを取得して参照できるようにすることだけです。

Apache POI Maven の依存関係

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-scratchpad</artifactId>
  <version>4.0.0</version>
</dependency>

Java API を使用して Excel ワークブックを作成し、シートを追加する

Apache POI HSSF オープン ソース ライブラリを使用すると、ソフトウェア開発者は新しい Microsoft Excel ワークブックを XLS ファイル形式で作成できます。開発者は、ワークブックの既存のインスタンスからコレクションに新しいワークシートを簡単に追加できます。 

新しい XLS ファイルを作成する

// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXls.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);

既存の Excel ファイルを読み書きする Java API 

Apache POI HSSF を使用すると、ソフトウェア開発者は既存の Microsoft Excel ワークブックにアクセスしてデータを読み取ることができます。ファイルの読み込みは非常に簡単です。最初に Excel ワークシートからワークブック インスタンスを作成し、目的のシートにアクセスします。次に、行番号をインクリメントし、行内のすべてのセルを反復処理します。すべてのデータが読み取られるまで、これらの手順を繰り返します。 Apache POI HSSF は、既存の Excel ファイルを変更するための機能も提供します。

Java 経由でセルの内容を読み取る

// open xls file
InputStream inputStream = new FileInputStream("document.xls");
Workbook workbook = WorkbookFactory.create(inputStream);
// get sheet
Sheet sheet = workbook.getSheetAt(0);
// get row
Row row = sheet.getRow(1);
// get cell
Cell cell = row.getCell(1);
// display data
System.out.println(cell);

図形を描画し、Excel スプレッドシートに画像を追加する

Apache POI-HSSF は、Excel スプレッドシートで図形を描画するための機能を提供します。 Microsoft Office 描画ツールを使用した図形の描画をサポートしています。楕円、線、長方形などのさまざまな形状を描画し、その他の形状スタイルを設定します。 Apache POI では、画像は描画の一部であり、現時点では PNG、JPG、および DIB タイプの画像をサポートしています。

Java経由でXLSで長方形を描く

// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("DrawShape.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// create rectangle shape
HSSFPatriarch patriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 254, (short) 1, 0, (short) 1, 0);
HSSFSimpleShape shape = patriarch.createSimpleShape(a);
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);
// save file
workbook.write(outputStream);

XLS スプレッドシートのフォント処理とセルの結合

Apache POI-HSSF は、Java プログラマーが Excel スプレッドシートでフォントを処理できるようにするメソッドを提供します。フォントの作成、色の設定、サイズの設定などを行うことができます。Font は、フォントを処理するメソッドを提供するインターフェイスです。 Apache POI-HSSF を使用すると、開発者はセルを単一のセルに結合することもできます。そのために、セル インデックスを引数として取り、セルを 1 つの大きなセルに結合するメソッドを提供します。

Java 経由で XLS スプレッドシートのフォントを設定する

// create a new XLS file
OutputStream outfile = new FileOutputStream("SetFont.xls");
Workbook wb = new HSSFWorkbook();
// create a new sheet
Sheet sheet = wb.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set style
CellStyle style = wb.createCellStyle();
// set text
cell.setCellValue("File Format Developer Guide");
// set font settings
Font font = wb.createFont();
font.setFontHeightInPoints((short) 14);
font.setFontName("Arial");
font.setItalic(true);
font.setBold(true);
// apply font
style.setFont(font);
cell.setCellStyle(style);
// save
wb.write(outfile);
 日本