MS Excelスプレッドシートにより、大量の表形式データの保持と共有が容易になりました。これだけでなく、数式の適用、チャートやグラフの生成、データの並べ替えやフィルタリングなど、さまざまな操作を実行できます。この記事では、Javaアプリケーション内からExcel自動化機能を実装する方法を学習します。この記事を読むと、Javaを使用してExcelXLSXまたはXLSファイルを最初から作成できるようになります。さらに、この記事では、既存のExcelファイルを更新する方法、グラフを生成する方法、数式を適用する方法、Excelワークシートにピボットテーブルを追加する方法について説明します。

Excelファイルを作成するためのJavaAPI-無料ダウンロード

Aspose.Cells for Javaは、MSOfficeなしでExcelファイルを作成または変更できる強力なスプレッドシート操作APIです。 APIは、チャート、グラフ、数式の追加をサポートし、プログラムで他のスプレッドシート操作操作を実行します。 APIを無料でダウンロードするか、Mavenベースのアプリケーションにインストールできます。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>20.9</version>
</dependency>

Javaを使用してExcelXLSXまたはXLSを作成する

MS Excelファイルはワークブックと呼ばれ、各ワークブックは1つ以上のワークシートで構成されます。ワークシートには、データをセルの形式で保持するための行と列がさらに含まれています。それでは、簡単なワークブックを作成することから始めましょう。以下は、ExcelXLSXファイルを最初から作成する手順です。

  • Workbookクラスのインスタンスを作成します。
  • Workbook.getWorksheets.get()メソッドを使用して、目的のワークシートにアクセスします。
  • A1、B3などのセルの識別子を使用して、ワークシートの目的のセルに値を入力します。
  • Workbook.save()メソッドを使用して、ブックをExcelファイルとして保存します。

次のコードサンプルは、Javaを使用してExcelXLSXファイルを作成する方法を示しています。

// 新しいブックを作成する
Workbook workbook = new Workbook();

// セルに値を追加する
workbook.getWorksheets().get(0).getCells().get("A1").putValue("Hello World!");

// ExcelXLSXファイルとして保存
workbook.save("Excel.xlsx"); 

Javaを使用してExcelXLSXファイルを編集する

次に、既存のMSExcelファイルにデータを変更または挿入する方法を見てみましょう。このためには、ファイルをロードし、目的のワークシートにアクセスして、更新されたファイルを保存するだけです。以下は、既存のExcelファイルを変更する手順です。

  • Workbookクラスを使用してExcelファイルを開きます。
  • WorksheetクラスとCellクラスをそれぞれ使用して、ワークシートとセルにアクセスします。
  • 更新されたブックをExcelの.xlsxファイルとして保存します。

次のコードサンプルは、Javaを使用して既存のMSExcelファイルを編集する方法を示しています。

// 新しいブックを作成する
Workbook workbook = new Workbook("workbook.xls"); 

// ワークシートのセルから「A1」セルの参照を取得します
Cell cell = workbook.getWorksheets().get(0).getCells().get("A1");

// 「HelloWorld!」を設定します「A1」セルへの値
cell.setValue("updated cell value.");

// Excelファイルを書く
workbook.save("Excel.xls", FileFormatType.EXCEL_97_TO_2003);

Javaを使用してExcelでチャートまたはグラフを作成する

スプレッドシートのグラフは、ワークシートに保存されているデータを視覚的に表すために使用されます。大量のデータを非常に簡単に分析できます。 Aspose.Cells for Javaは、Excelファイル内にプログラムで作成できる幅広いチャートを提供します。以下は、ExcelXLSXファイルでグラフを作成する手順です。

  • Workbookクラスを使用して、新しいExcelファイルを作成するか、既存のファイルをロードします。
  • ワークシートにデータを追加します(オプション)。
  • Worksheet.getCharts()メソッドを使用して、ワークシートのチャートコレクションを取得します。
  • Worksheet.getCharts().add()メソッドを使用して新しいグラフを追加します。
  • コレクションから新しく作成されたグラフを取得します。
  • セルの範囲を指定して、グラフのNSeriesを設定します。
  • ブックをExcelの.xlsxファイルとして保存します。

次のコードサンプルは、Javaを使用してExcelXLSXでグラフを作成する方法を示しています。

// 新しいブックを作成する
Workbook workbook = new Workbook("workbook.xlsx"); 

// 最初のワークシートの参照を取得する
WorksheetCollection worksheets = workbook.getWorksheets();
Worksheet sheet = worksheets.get(0);

// セルにサンプル値を追加する
Cells cells = sheet.getCells();
Cell cell = cells.get("A1");
cell.setValue(50);
cell = cells.get("A2");
cell.setValue(100);
cell = cells.get("A3");
cell.setValue(150);
cell = cells.get("B1");
cell.setValue(4);
cell = cells.get("B2");
cell.setValue(20);
cell = cells.get("B3");
cell.setValue(50);

// ワークシートでグラフを取得する
ChartCollection charts = sheet.getCharts();

// ワークシートにグラフを追加する
int chartIndex = charts.add(ChartType.PYRAMID, 5, 0, 15, 5);
Chart chart = charts.get(chartIndex);

// 「A1」の範囲のチャートにNSeries(チャートデータソース)を追加する
// 「B3」へのセル
SeriesCollection serieses = chart.getNSeries();
serieses.add("A1:B3", true);

// Excelファイルを書く 
workbook.save("Excel_with_Chart.xlsx");
Javaを使用してExcelでチャートを作成する

Javaを使用してExcelXLSXでピボットテーブルを作成する

Excelワークシートのピボットテーブルには、データへのフィルターの追加、合計の計算、データの要約など、さまざまな目的があります。ピボットテーブルは、ワークシートのセルの範囲を使用して作成できます。以下は、Excelワークシートでピボットテーブルを作成する手順です。

  • 新しいWorkbookを作成するか、既存のファイルをロードします。
  • ワークシートにデータを挿入します(オプション).
  • Worksheet.getPivotTables()メソッドを使用してピボットテーブルコレクションにアクセスします。
  • Worksheet.getPivotTables().add()メソッドを使用して、ワークシートに新しいピボットテーブルを追加します。
  • ピボットテーブルにデータを提供します。
  • ブックを保存します。

次のコードサンプルは、Javaを使用してExcelでピボットテーブルを作成する方法を示しています。

// 新しいブックを作成する
Workbook workbook = new Workbook("workbook.xlsx"); 

// 最初のワークシートを入手します。
Worksheet sheet = workbook.getWorksheets().get(0);

// ワークシートのセルコレクションの取得
Cells cells = sheet.getCells();

// セルに値を設定する
Cell cell = cells.get("A1");
cell.setValue("Sport");
cell = cells.get("B1");
cell.setValue("Quarter");
cell = cells.get("C1");
cell.setValue("Sales");

cell = cells.get("A2");
cell.setValue("Golf");
cell = cells.get("A3");
cell.setValue("Golf");
cell = cells.get("A4");
cell.setValue("Tennis");
cell = cells.get("A5");
cell.setValue("Tennis");
cell = cells.get("A6");
cell.setValue("Tennis");
cell = cells.get("A7");
cell.setValue("Tennis");
cell = cells.get("A8");
cell.setValue("Golf");

cell = cells.get("B2");
cell.setValue("Qtr3");
cell = cells.get("B3");
cell.setValue("Qtr4");
cell = cells.get("B4");
cell.setValue("Qtr3");
cell = cells.get("B5");
cell.setValue("Qtr4");
cell = cells.get("B6");
cell.setValue("Qtr3");
cell = cells.get("B7");
cell.setValue("Qtr4");
cell = cells.get("B8");
cell.setValue("Qtr3");

cell = cells.get("C2");
cell.setValue(1500);
cell = cells.get("C3");
cell.setValue(2000);
cell = cells.get("C4");
cell.setValue(600);
cell = cells.get("C5");
cell.setValue(1500);
cell = cells.get("C6");
cell.setValue(4070);
cell = cells.get("C7");
cell.setValue(5000);
cell = cells.get("C8");
cell.setValue(6430);


PivotTableCollection pivotTables = sheet.getPivotTables();

// ワークシートへのピボットテーブルの追加
int index = pivotTables.add("=A1:C8", "E3", "PivotTable2");

// 新しく追加されたピボットテーブルのインスタンスへのアクセス
PivotTable pivotTable = pivotTables.get(index);

// 行の総計を表示しません。
pivotTable.setRowGrand(false);

// 最初のフィールドを行領域にドラッグします。
pivotTable.addFieldToArea(PivotFieldType.ROW, 0);

// 2番目のフィールドを列領域にドラッグします。
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1);

// 3番目のフィールドをデータ領域にドラッグします。
pivotTable.addFieldToArea(PivotFieldType.DATA, 2);

// Excelファイルを書く 
workbook.save("Excel_with_Chart.xlsx");
Javaを使用してExcelでピボットテーブルを作成する

Javaを使用してExcelファイルにセルの数式を追加する

Aspose.Cells for Javaを使用すると、Excelワークシートの数式を操作することもできます。組み込み関数とアドイン関数をセルに適用できます。

Excelで組み込み関数を適用する

組み込み関数を使用するには、ワークシート内の目的のセルにアクセスし、Cell.setFormula(String)メソッドを使用して数式を追加するだけです。次のコードサンプルは、Javaを使用して組み込み式を設定する方法を示しています。

// 新しいブックを作成する
Workbook workbook = new Workbook();

// セルに値を追加する
workbook.getWorksheets().get(0).getCells().get(0).setFormula("=H7*(1+IF(P7 =$L$3,$M$3, (IF(P7=$L$4,$M$4,0))))");

// ExcelXLSXファイルとして保存
workbook.save("Excel.xlsx"); 

Excelにアドイン関数を追加する

ユーザー定義関数を使用する必要がある場合があります。このためには、.xlam(Excelマクロ対応アドイン)ファイルを使用してアドイン関数を登録し、それを目的のセルに使用する必要があります。アドイン関数を登録するために、Aspose.Cells for JavaはregisterAddInFunction(int, String)およびregisterAddInFunction(string, string, boolean)メソッドを提供します。次のコードサンプルは、Javaを使用してアドイン関数を登録および使用する方法を示しています。

// 新しいブックを作成する
Workbook workbook = new Workbook();

// マクロ対応のアドインを関数名とともに登録する
int id = workbook.getWorksheets().registerAddInFunction("TESTUDF.xlam", "TEST_UDF", false);

// ファイルにさらに関数を登録します(存在する場合)
workbook.getWorksheets().registerAddInFunction(id, "TEST_UDF1"); //in this way you can add more functions that are in the same file

// 最初のワークシートにアクセスする
Worksheet worksheet = workbook.getWorksheets().get(0);

// 最初のセルにアクセスする
Cell cell = worksheet.getCells().get("A1");

// アドインに存在する数式名を設定します
cell.setFormula("=TEST_UDF()"); 

// ExcelXLSXファイルとして保存
workbook.save("Excel.xlsx"); 

結論

この記事では、MSOfficeなしでJavaを使用してMSExcelファイルを最初から作成する方法を見てきました。また、ブックを更新する方法、グラフを作成する方法、表を追加する方法、およびMSExcelワークシート内のセル値に数式を適用する方法も学習しました。 ドキュメントを使用して、AsposeのJavaExcelAPIについて詳しく知ることができます。

関連項目