Excelシートで処理すべきデータが多すぎて、各セルのデータをまとめる必要がありながら、1つずつ計算するのが面倒くさい場合は、ピボットテーブルを使用してすばやくまとめできます。そしてこの記事の内容では、Javaプログラムを使用してExcelテーブルのデータに基づいてピボットテーブルを作成する方法を紹介します。
##環境への下準備
ExcelクラスライブラリツールであるFree Spire.XLS for Javaを使用する必要があります。ここでは無料バージョンを使用します。公式WebサイトからJarパッケージをダウンロードして解凍し、手動でSpire.Xls.jarをライブラリにインポートできます。フォルダをJavaプログラムに追加します。
##Javaコード一覧
import com.spire.xls.*;
public class CreatePivotTable {
public static void main(String[] args) {
//Excelテストドキュメントを読み込む
Workbook wb = new Workbook();
wb.loadFromFile("C:\\Users\\Administrator\\Desktop\\test.xlsx");
//最初のワークシートを取得する
Worksheet sheet = wb.getWorksheets().get(0);
//集約および分析する必要のあるデータのキャッシュを作成する
CellRange dataRange = sheet.getCellRange("A1:D10");
PivotCache cache = wb.getPivotCaches().add(dataRange);
//ワークシートでピボットテーブルの名前と場所を指定して、キャッシュを使用してピボットテーブルを作成する
PivotTable pt = sheet.getPivotTables().add("PivotTable",sheet.getCellRange("A12"),cache);
//行フィールド1を追加する
PivotField pf1 = null;
if (pt.getPivotFields().get("月") instanceof PivotField){
pf1 = (PivotField) pt.getPivotFields().get("月");
}
pf1.setAxis(AxisTypes.Row);
//行フィールド2を追加する
PivotField pf2 = null;
if (pt.getPivotFields().get("メーカー") instanceof PivotField){
pf2 = (PivotField) pt.getPivotFields().get("メーカー");
}
pf2.setAxis(AxisTypes.Row);
//行フィールドのタイトルを設定する
pt.getOptions().setRowHeaderCaption("月");
//列フィールドを追加する
PivotField pf3 = null;
if (pt.getPivotFields().get("製品") instanceof PivotField){
pf3 = (PivotField) pt.getPivotFields().get("製品");
}
pf3.setAxis(AxisTypes.Column);
//列フィールドヘッダーを設定する
pt.getOptions().setColumnHeaderCaption("製品");
//値フィールドを追加する
pt.getDataFields().add(pt.getPivotFields().get("総出力"),"総和項:総出力",SubtotalTypes.Sum);
//ピボットテーブルのスタイルを設定する
pt.setBuiltInStyle(PivotBuiltInStyles.PivotStyleDark12);
//ドキュメントを保存する
wb.saveToFile("ピボットテーブル.xlsx", ExcelVersion.Version2013);
wb.dispose();
}
}
以上は今回のExcelでピボットテーブルを作成する方法でした、最後まで読んでいただきありがとうございます。