以前の記事では、Microsoftファイル形式を操作するためのオープンソースJava APIであるApache Poiの詳細を説明しました。この記事では、Apache POIコンポーネントを使用して、Excelワークブックを操作します。また、Apache POIを使用してExcelファイルを作成し、このJavaライブラリを使用してシートを追加する方法を示します。

excelファイルフォーマットにアクセスするためのapache poi java apis

Apache Poi Java APIは、2つの異なるExcelファイル形式で作業するための個別のコンポーネントを提供します。これらは:

  1. HSSF (恐ろしいスプレッドシート形式) - Excel 97-2003ファイル形式での作業用ファイル形式
  2. XSSF (XMLスプレッドシート形式) - Excel 2007以降のファイル形式での作業用 具体的には、 hssf xlsファイルを読み取ることができますが、 xssfxlsおよび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ワークブックを作成することはシンプルで簡単で、次の手順を使用して達成できます。

  1. 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ワークブックを使用して作業する例については、お楽しみに。