以前の記事では、Microsoftファイル形式を操作するためのオープンソースJava APIであるApache Poiの詳細を説明しました。この記事では、Apache POIコンポーネントを使用して、Excelワークブックを操作します。また、Apache POIを使用してExcelファイルを作成し、このJavaライブラリを使用してシートを追加する方法を示します。
excelファイルフォーマットにアクセスするためのapache poi java apis
Apache Poi Java APIは、2つの異なるExcelファイル形式で作業するための個別のコンポーネントを提供します。これらは:
- HSSF (恐ろしいスプレッドシート形式) - Excel 97-2003ファイル形式での作業用ファイル形式
- XSSF (XMLスプレッドシート形式) - Excel 2007以降のファイル形式での作業用 具体的には、 hssf xlsファイルを読み取ることができますが、 xssf でxlsおよびxlsxファイルを読み取ることができます。これらの両方のAPIを使用すると、基礎となるファイル形式の詳細を説明することなく、Javaアプリケーション内からExcelファイルを作成、読み取り、操作できます。
JavaでExcel XLSXファイルを作成する方法は?
この例では、JavaアプリケーションでApache Poi XSSFを使用してXLSXファイルを作成する詳細を確認します。この段階では、JavaアプリケーションにApache POI APIを既にインストールして構成していると想定しています。そうしていない場合は、JavaのApache POIをインストールにアクセスして、手順に従うことができます。
ApachePoiを使用してExcelワークブックを作成する手順
JavaにApache POI APIを使用してExcelワークブックを作成することはシンプルで簡単で、次の手順を使用して達成できます。
- xssfworkbook クラスを使用してワークブックを作成します 2.出力ストリームを閉じます。 Apache POIを使用してExcelワークブックを作成するJavaコードは次のとおりです。
XSSFWorkbook wb = new XSSFWorkbook();
...
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
上記のコードは、XLSXファイル形式でExcelワークブックを作成します。ただし、この段階でワークブックを開くと、次のエラーが表示されます。
この理由は、ワークシートなしでApache POIを使用してExcelワークブックがこのエラーを提供するためです。この問題を解決するには、生成されたExcelファイルに少なくとも1つのワークシートを追加する必要があります。
ワークシートを追加して、JavaのApachePoiでワークブックをExcelに追加します
これにより、ワークブックを適切に機能させるためにワークブックにワークシートを追加する必要があるステップになります。これは、次のコードサンプルに示すように、ワークブックに追加されるXSSFSheetオブジェクトを使用することで実現できます。
XSSFWorkbook wb1 = new XSSFWorkbook();
try
{
XSSFSheet sheet1 = wb1.createSheet("Ripon");
FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
wb1.write(fileOut);
fileOut.close();
}
catch(Exception ex)
{
System.out.println("XLSX Generated Error...");
}
complete xssfworkbookの例
Workbookを作成し、Java用のApache Poi APIを使用してシートを追加する方法を確認したので、作成したワークシートに行とセルを追加する方法を見てみましょう。 XSSFSheetクラスには、シートに行を追加できるメソッドクリーターがあります。これにより、Excelワークシートの行を表す行クラスのオブジェクトが返されます。ワークシートでセルを作成するには、XSSFCellクラスのオブジェクトを返すCreateCellメソッドを使用する必要があります。 XSSFCELLのSetCellValueメソッドは、セルの値を設定するために使用されます。 XSSFWorkBookを使用してワークブックを作成し、XSSFSheetを使用してシートを追加し、XSSFrowを追加する完全な例を以下に示します。
// Blank workbook
XSSFWorkbook workbook = new XSSFWorkbook();
// Creating a blank Excel sheet
XSSFSheet sheet = workbook.createSheet("student Details");
// Creating an empty TreeMap of string and Object][] type
Map<String, Object[]> data = new TreeMap<String, Object[]>();
// Writing data to Object[]
// using put() method
data.put("1", new Object[] { "ID", "CITY", "STATE" });
data.put("2", new Object[] { 1, "Clanton", "Alabama" });
data.put("3", new Object[] { 2, "Cordova", "Alaska" });
data.put("4", new Object[] { 3, "Clifton", "Arizona" });
data.put("5", new Object[] { 4, "Arcadia", "California" });
// Iterating over data and writing it to sheet
Set<String> keyset = data.keySet();
int rownum = 0;
for (String key : keyset) {
// Creating a new row in the sheet
XSSFRow row = sheet.createRow(rownum++);
Object[] objArr = data.get(key);
int cellnum = 0;
for (Object obj : objArr) {
// This line creates a cell in the next column of that row
XSSFCell cell = row.createCell(cellnum++);
if (obj instanceof String)
cell.setCellValue((String)obj);
else if (obj instanceof Integer)
cell.setCellValue((Integer)obj);
}
}
// Writing the workbook
FileOutputStream out = new FileOutputStream("gfgcontribute.xlsx");
workbook.write(out);
// Closing file output connections
out.close();
結論
このブログ記事では、JavaのApache POI APIを使用してExcelワークブックを作成する方法を示しました。 XSSFWorkBookを使用して、XLSXワークブックを生成し、ワークシートを追加し、ワークシートに行を追加し、ワークシートのセルにデータを入力しました。 JavaにApache Poiを使用してExcelワークブックを使用して作業する例については、お楽しみに。