JavaでExcelにデータをエクスポート

JSONやCSVなどのさまざまな利用可能なソースからMicrosoftExcelにデータを簡単にエクスポートできます。 Java開発者は、プログラムで配列、オブジェクトのリスト、JSON、CSVからExcelドキュメントにデータをエクスポートできます。この記事では、Javaを使用してデータをExcelにエクスポートする方法を学習します。

この記事では、次のトピックについて説明/取り上げています。

データをエクスポートするJavaAPI

Excelにデータをエクスポートするには、Aspose.Cells for JavaAPIを使用します。これは、Javaアプリケーション内でExcelファイルを作成、編集、または変換できる強力なスプレッドシート操作APIです。 APIを使用すると、Microsoft Excelアプリケーションを必要とせずに、プログラムでExcel自動化機能を実行できます。

APIのJARをダウンロードするか、MavenベースのJavaアプリケーションに次のpom.xml構成を追加して、以下のコード例を試すことができます。

<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>21.8</version>
</dependency>

Javaで配列をExcelにエクスポート

1次元配列または2次元配列からExcelドキュメントにデータを簡単にエクスポートできます。配列は、参照型または値型にすることができます。以下に説明する簡単な手順に従って、配列からExcelにデータをエクスポートできます。

  • Workbookクラスのインスタンスを作成します
  • Worksheetクラスのインスタンスでワークシートを取得します
  • 文字列値を含む配列を作成します
  • 配列を使用してimportArray()メソッドを呼び出します
  • Workbookクラスのsave()メソッドを呼び出して、出力ファイルを保存します

次のコードサンプルは、Javaを使用して文字列の配列をExcelにエクスポートする方法を示しています。

// Workbookオブジェクトを初期化します
Workbook workbook = new Workbook();

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

// 文字列値として名前を含む配列を作成する
String[] names = new String[] { "Laurence Chen", "Roman Korchagin", "Kyle Huang" };

// 名前の配列を最初の行と最初の列に垂直にエクスポートする
worksheet.getCells().importArray(names, 0, 0, true);

// Excelファイルを保存する
workbook.save("C:\\Files\\output.xlsx");
Javaで配列をExcelにエクスポート

Javaで配列をExcelにエクスポート

APIのWorkbookクラスは、Excelスプレッドシートを作成するためのメインクラスです。ネイティブのExcelファイルを開いて保存する機能を提供します。このクラスのsave()メソッドは、指定されたファイルパスに出力ファイルを保存するために使用されます。

Worksheetクラスは単一のワークシートを表し、セルと行を操作する機能を提供します。

CellsクラスのimportArray()メソッドは、文字列の配列をワークシートにエクスポートします。次の入力パラメータを取ります。

  • stringArray:文字列値の配列
  • firstRow:エクスポート先の最初のセルの行番号
  • firstColumn:エクスポート先の最初のセルの列番号
  • isVertical:データを垂直方向にエクスポートするか水平方向にエクスポートするかを指定します

APIは、整数または倍精度浮動小数点数の配列をワークシートにエクスポートするためのオーバーロードされたバージョンのimportArray()メソッドも提供します。

2次元配列をExcelにエクスポート

同様に、2次元配列をExcelファイルにエクスポートできます。次のコードサンプルは、2次元配列をJavaのExcelファイルにエクスポートする方法を示しています。

// Workbookオブジェクトを初期化します
Workbook workbook = new Workbook();

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

// 整数の2次元配列の作成
int[][] array2D = { 
  { 1, 2 }, 
  { 3, 4 }, 
  { 5, 6 }, 
  { 7, 8 } 
};

// 名前の配列を最初の行と最初の列に垂直にエクスポートする
worksheet.getCells().importArray(array2D, 0, 0);

// Excelファイルを保存する
workbook.save("C:\\Files\\output.xlsx");
2次元配列をExcelにエクスポート

2次元配列をExcelにエクスポート

Cellsクラスは、整数の2次元配列をワークシートにエクスポートするためのimportArray()メソッドを提供します。 APIは、このメソッドのオーバーロードされたバージョンを提供して、文字列の2次元配列またはdoubleをワークシートにエクスポートします。

ArrayListをJavaでExcelにエクスポート

以下の手順に従って、ArrayListからExcelにデータをエクスポートできます。

  • Workbookクラスのインスタンスを作成します
  • Worksheetクラスのインスタンスでワークシートを取得します
  • 文字列値を含む配列リストを作成します
  • 配列リストを使用してimportArrayList()メソッドを呼び出します
  • Workbookクラスのsave()メソッドを呼び出して、出力ファイルを保存します

次のコードサンプルは、JavaでArrayListをExcelにエクスポートする方法を示しています。

// Workbookオブジェクトを初期化します
Workbook workbook = new Workbook();

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

// ArrayListオブジェクトのインスタンス化
ArrayList<String> list = new ArrayList<String>();

// 文字列値としてリストにいくつかの名前を追加します
list.add("Laurence Chen");
list.add("Roman Korchagin");
list.add("Kyle Huang");
list.add("Tommy Wang");

// ワークシートの最初の行と最初の列でArrayListの内容を垂直にエクスポートします。 
worksheet.getCells().importArrayList(list, 0, 0, true);

// Excelファイルを保存する
workbook.save("C:\\Files\\Output.xlsx");
Javaで配列リストをExcelにエクスポート

ArrayListをJavaでExcelにエクスポート

CellsクラスのimportArrayList()メソッドは、データのArrayListをワークシートにエクスポートします。データのArrayListを含む4つのパラメーターを取ります。他のパラメーターは、firstRow、firstColumn、およびisVerticalです。

カスタムオブジェクトのコレクションをJavaでExcelにエクスポート

以下の手順に従って、カスタムオブジェクトのコレクションからExcelにデータをエクスポートできます。

  • Workbookクラスのインスタンスを作成します
  • Worksheetクラスのインスタンスでワークシートを取得します
  • カスタムオブジェクトの配列リストを作成する
  • 配列リストを使用してimportCustomObjects()メソッドを呼び出します
  • Workbookクラスのsave()メソッドを呼び出して、出力ファイルを保存します

次のコードサンプルは、カスタムオブジェクトのコレクションをJavaでExcelにエクスポートする方法を示しています。

// 新しいワークブックを初期化する
Workbook book = new Workbook();

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

// PersonsのArrayListを定義します
List<Person> list = new ArrayList<Person>();

list.add(new Person("Mike", 25, "Software Engineer"));
list.add(new Person("Steve", 30, "Doctor"));
list.add(new Person("Billy", 35, "Teacher"));

// ワークシートにエクスポートするために、すべてではなく、名前と年齢の列のみを選択します         
sheet.getCells().importCustomObjects((Collection)list,
    new String[] { "Name", "Age" }, // propertyNames
    true, // isPropertyNameShown
    0, // firstRow
    0, // firstColumn
    list.size(), // Number of objects to be exported
    true, // insertRows
    null, // dateFormatString
    false); // convertStringToNumber

// Excelファイルを保存します
book.save("C:\\Files\\Output.xlsx");
JavaでのExcelへのカスタムオブジェクトのコレクション

JavaでのExcelへのカスタムオブジェクトのコレクション

CellsクラスのimportCustomObjects()メソッドは、カスタムオブジェクトのリストをエクスポートし、次のパラメーターを取ります。 APIは、より少ないパラメーターを使用するこのメソッドのオーバーロードバージョンも提供します。

  • リスト:カスタムオブジェクトのコレクション
  • propertytName:エクスポートする特定のプロパティの名前を指定します。 nullの場合、オブジェクトのすべてのプロパティをエクスポートします
  • isPropertyNameShown:プロパティ名を最初の行にエクスポートするかどうかを示します
  • firstRow:エクスポートする最初のセルの行番号
  • firstColumn:エクスポートする最初のセルの列番号
  • rowNumber:エクスポートされる行の数
  • insertRows:データに合うように追加の行が追加されるかどうかを示します
  • dataFormatString:セルの日付フォーマット文字列
  • convertStringToNumber:このメソッドが文字列を数値に変換しようとするかどうかを示します。

Javaでセルを結合してExcelにデータをエクスポートする

以下の手順に従って、オブジェクトのコレクションからマージされたセルを含むワークシートにデータをエクスポートできます。

  • Workbookクラスのインスタンスを作成します with template file path
  • Worksheetクラスのインスタンスでワークシートを取得します
  • オブジェクトの配列リストを作成します
  • ImportTableOptionsクラスのインスタンスを作成します
  • 配列リストを使用してimportCustomObjects()メソッドを呼び出します
  • Workbookクラスのsave()メソッドを呼び出して、出力ファイルを保存します

次のコードサンプルは、カスタムオブジェクトのコレクションをJavaでセルが結合されたExcelワークシートにエクスポートする方法を示しています。

// 既存のワークブックを開きます。
Workbook workbook = new Workbook("C:\\Files\\SampleMergedTemplate.xlsx");

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

// ArrayListオブジェクトのインスタンス化
List<Product> productList = new ArrayList<Product>();

// 製品のコレクションを作成する
for (int i = 0; i < 3; i++)
{
  Product product = new Product(i, "Product - " + i);
    productList.add(product);
}

// テーブルのインポートオプションを定義する
ImportTableOptions tableOptions = new ImportTableOptions();

// CheckMergedCellsプロパティをtrueに設定します
tableOptions.setCheckMergedCells(true);
tableOptions.setFieldNameShown(false);

// データをExcelテンプレートにエクスポートします(2行目、1列目)           
sheet.getCells().importCustomObjects((Collection)productList, 1, 0, tableOptions);

// Excelファイルを保存します
workbook.save("C:\\Files\\Output.xlsx", SaveFormat.XLSX);
Javaでセルを結合してExcelにデータをエクスポートする

Javaでセルを結合してExcelにデータをエクスポートする

ImportTableOptionsクラスは、データをセルにエクスポートするためのいくつかのオプションを提供します。 setCheckMergedCellsは、結合されたセルをチェックするかどうかを示します。 setFieldNameShownプロパティは、フィールド名をエクスポートする必要があるかどうかを示します。

Javaで1つのExcelファイルから別のExcelファイルに行と列をコピーする

以下の手順に従って、プログラムで1つのExcelファイルから別のファイルに行と列を簡単にコピーできます。

  • Workbookクラスのインスタンスを作成します with source workbook input file
  • Workbookクラスのインスタンスを作成します for destination workbook
  • Worksheetクラスの個別のインスタンスでソースワークシートと宛先ワークシートを取得します
  • ソースワークシートのセルを使用して、宛先ワークシートのcopyRows()メソッドを呼び出します
  • Workbookクラスのsave()メソッドを呼び出して、宛先のワークブック出力ファイルを保存します

次のコードサンプルは、Javaを使用して1つのExcelファイルから別のExcelファイルに行と列をコピーする方法を示しています。

// ソースExcelファイルを開きます。
Workbook srcWorkbook = new Workbook("C:\\Files\\Source_Workbook.xlsx");

// 宛先のExcelファイルをインスタンス化します。
Workbook destWorkbook = new Workbook();

// ソースワークブックの最初のワークシートを取得します。
Worksheet srcWorksheet = srcWorkbook.getWorksheets().get(0);

// 宛先ワークブックの最初のワークシートを取得します。
Worksheet desWorksheet = destWorkbook.getWorksheets().get(0);

// ソースワークブックの最初のワークシートのすべての行をにコピーします
// 宛先ワークブックの最初のワークシート。
desWorksheet.getCells().copyRows(srcWorksheet.getCells(), 0, 0, srcWorksheet.getCells().getMaxDisplayRange().getRowCount());

// Excelファイルを保存します。
destWorkbook.save("C:\\Files\\Destination_Workbook.xlsx");	
Javaで1つのExcelファイルから別のExcelファイルに行と列をコピーする

Javaで1つのExcelファイルから別のExcelファイルに行と列をコピーする

あるExcelファイルから別のExcelファイルに特定の行をコピーできます。次のコードサンプルは、Javaを使用して特定の行を1つのExcelファイルから別のExcelファイルにコピーする方法を示しています。

// ソースExcelファイルを開きます。
Workbook srcWorkbook = new Workbook("C:\\Files\\Source_Workbook.xlsx");

// 宛先のExcelファイルをインスタンス化します。
Workbook destWorkbook = new Workbook();

// ソースワークブックの最初のワークシートを取得します。
Worksheet srcWorksheet = srcWorkbook.getWorksheets().get(0);

// 宛先ワークブックの最初のワークシートを取得します。
Worksheet desWorksheet = destWorkbook.getWorksheets().get(0);

// ソースワークブックの2行目をデスティネーションワークブックの最初の行にコピーします。
desWorksheet.getCells().copyRow(srcWorksheet.getCells(), 1, 0);

// ソースワークブックの4行目をデスティネーションワークブックの2行目にコピーします。
desWorksheet.getCells().copyRow(srcWorksheet.getCells(), 3, 1);

// Excelファイルを保存します。
destWorkbook.save("C:\\Files\\Destination_Workbook.xlsx");
Javaで特定の行と列を1つのExcelファイルから別のExcelファイルにコピーする

Javaで特定の行と列を1つのExcelファイルから別のExcelファイルにコピーする

copyRows()メソッドは、行全体のデータと形式をコピーします。ソースワークシートのセルを、ソース行インデックス、宛先行インデックス、およびコピーされた行番号とともに入力パラメーターとしてコピーする必要があります。 APIは、CopyOptionsおよびPasteOptionsを使用して行をコピーするために、このメソッドのオーバーロードされたバージョンも提供します。

同様に、copyColumn()またはcopyColumns()メソッドを使用して、あるMicrosoftExcelドキュメントから別のドキュメントに列データをコピーできます。

JSONデータをJavaでExcelにエクスポートする

以下の手順に従って、JSONファイルからExcelにデータを簡単にエクスポートできます。

  • Workbookクラスのインスタンスを作成します
  • Worksheetクラスのインスタンスでワークシートを取得します
  • JSONファイルを読む
  • CellsFactoryクラスのインスタンスを作成します
  • createStyle()メソッドを呼び出してスタイルを開始します
  • 水平方向の配置、フォントの色など、さまざまなスタイルプロパティを設定します。
  • JsonLayoutOptionsクラスのインスタンスを作成します
  • スタイルオブジェクトでタイトルスタイルを設定する
  • テーブルプロパティとして配列をtrueに設定します
  • JSON入力とJsonLayoutOptionsを使用してJsonUtility.importData()メソッドを呼び出します
  • Workbookクラスのsave()メソッドを呼び出して、出力ファイルを保存します

次のコードサンプルは、Javaを使用してJSONファイルからExcelにデータをエクスポートする方法を示しています。

// Workbookオブジェクトのインスタンス化
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);

// JSONファイルを読む
File file = new File("C:\\Files\\sample.json");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
    String jsonInput = "";
    String tempString;
    while ((tempString = bufferedReader.readLine()) != null) {
      jsonInput = jsonInput + tempString; 
    }
    bufferedReader.close();

// スタイルを設定する
CellsFactory factory = new CellsFactory();
Style style = factory.createStyle();
style.setHorizontalAlignment(TextAlignmentType.CENTER);
style.getFont().setColor(Color.getCyan());
style.getFont().setBold(true);

// JsonLayoutOptionsを設定します
JsonLayoutOptions options = new JsonLayoutOptions();
options.setTitleStyle(style);
options.setArrayAsTable(true);

// JSONデータのエクスポート
JsonUtility.importData(jsonInput, worksheet.getCells(), 0, 0, options);

// Excelファイルを保存する
workbook.save("C:\\Files\\Output.xlsx");
{
  "quiz": {
    "sport": {
      "q1": {
        "question": "Which one is correct team name in NBA?",
        "answer": "Huston Rocket"
      }
    },
    "maths": {
      "q1": {
        "question": "5 + 7 = ?",
        "answer": "12"
      },
      "q2": {
        "question": "12 - 8 = ?",
        "answer": "4"
      }
    }
  }
}
JSONデータをJavaでExcelにエクスポートする

JSONデータをJavaでExcelにエクスポートする

CellsFactoryクラスは、Cellsモデルのクラスをインスタンス化します。このクラスのcreateStyle()メソッドは、Styleクラスの新しいスタイルオブジェクトを作成します。 Styleクラスを使用すると、フォント、色、配置、境界線など、Excelドキュメントの表示スタイルを設定できます。

JsonLayoutOptionsクラスは、JSONレイアウトタイプのオプションを提供します。このクラスのsetTitleStyleメソッドは、定義されたタイトルのスタイルを設定するために使用されます。 setArrayAsTableメソッドを使用すると、配列をテーブルとして処理できます。

APIは、JSONを処理するためのJsonUtilityクラスを提供します。このクラスのimportData()メソッドは、JSON文字列をエクスポートし、次のパラメーターを取ります。

  • json:JSON文字列
  • セル:セル
  • 行:行インデックス
  • 列:列インデックス
  • オプション:JSON文字列をエクスポートするオプション

Javaを使用してExcelでCSVデータを取得する

以下に説明する簡単な手順に従って、CSVファイルからExcelにデータをエクスポートできます。

  • LoadOptionsクラスのインスタンスをLoadFormatで作成します
  • Workbookクラスのインスタンスを作成します with CSV file path and LoadOptions object
  • Workbookクラスのsave()メソッドを呼び出して、出力ファイルを保存します

次のコードサンプルは、Javaを使用してCSVファイルからExcelにデータをエクスポートする方法を示しています。

// CSVLoadFormatを使用してLoadOptionsを初期化します。
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV);

// CSVファイルをワークブックオブジェクトとして開く
Workbook workbook = new Workbook("C:\\Files\\Sample.csv", loadOptions);

// ファイルをExcelドキュメントとして保存します
workbook.save("C:\\Files\\Output.xlsx");
id,language,edition,author,streetAddress,city,state,postalCode
01,Java,third,Herbert Schildt,126,San Jone,CA,394221
02,C++,second,EAAAA,126,San Jone,CA,394221
03,.Net,second,E.Balagurusamy,126,San Jone,CA,394221
CSVデータをJavaでExcelにエクスポート

CSVデータをJavaでExcelにエクスポート

APIのLoadOptionsクラスは、ファイルをロードするためのオプションを提供します。 LoadFormatクラスには、ロードファイル形式を表す定数が含まれています。

無料ライセンスを取得する

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、JavaでデータをExcelにエクスポートする方法を学びました。また、プログラムで配列、JSON、またはCSVファイルからExcelにデータをエクスポートする方法も学習しました。さらに、Javaを使用して1つのExcelファイルから別のファイルに行と列をコピーする方法を学習しました。 ドキュメントを使用して、JavaAPI用のAspose.Cellsについて詳しく知ることができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目

よくある質問

JavaでXLSXファイルにデータをエクスポートする方法は? JavaアプリケーションでJavaAPI用の統合が容易なAspose.Cellsを使用して、配列、オブジェクトのコレクション、JSON、およびCSVからXLSXファイルにデータを簡単にエクスポートできます。

JSONからExcelにデータをエクスポートするにはどうすればよいですか? Aspose.Cells APIは、JSONファイルからJavaのExcelにデータをエクスポートするためのJsonUtilityを提供します。 JSONデータをJavaでExcelにエクスポートセクションに簡単な手順があります。

JavaでCSVからExcelにデータをエクスポートするにはどうすればよいですか? Aspose.Cells APIを使用して、CSVファイルをロードしてXLSXとして保存するだけです。 Javaを使用してExcelでCSVデータを取得するセクションに簡単な手順があります。