Node.js を使用して Excel でピボット テーブルを作成する方法

Node.js を使用して Excel でピボット テーブルを作成する方法

Excel ファイルの最も優れた点は、データの視覚化またはコンパイルの段階で変更できることです。 MS Excel は、データの整理と複雑な計算の実行において依然としてトップ リストにあります。このブログ投稿では、プログラムで Node.js を使用して Excel でピボット テーブルを作成する方法を学習します。さらに、ピボット テーブルに基づいて Excel ファイルでピボット グラフを作成する方法についても説明します。このために、この Excel JavaScript API を Node.js プロジェクトにインストールします。

以下のセクションについて説明します。

Excel JavaScript API のインストール

この強力なライブラリをインストールするには、API パッケージを ダウンロード するか、次のコマンドを実行してインストールします。

npm install java
npm install aspose.cells

Node.js を使用して Excel でピボット テーブルを作成する方法

このセクションでは、次の手順と、プログラムで Excel にピボット テーブルを作成するコード スニペットを記述します。

次の手順とコード スニペットに従って、Excel を C# の DataTable に変換できます。

  1. Workbook クラスのインスタンスを作成します。
  2. get(index) メソッドを呼び出して、最初のワークシートの参照を取得します。
  3. setName メソッドを呼び出して、ワークシートの名前を設定します。
  4. getCells メソッドを呼び出して、Cells コレクションを取得します。
  5. Get 指定されたセル名の Cell 要素。
  6. この setValue メソッドを呼び出して、範囲の値を設定します。
  7. get メソッドを呼び出して、範囲内の Cell オブジェクトを取得します。
  8. add メソッドを呼び出して新しいシートを追加します。
  9. get 指定されたインデックスにある Worksheet 要素。
  10. setName メソッドを呼び出して、シートに名前を付けます。
  11. add メソッドを呼び出して、ピボット テーブルをワークシートに追加します。
  12. setRowGrand メソッドの値を設定して、総計を表示します。
  13. ピボットテーブル レポートが列の総計を表示するかどうかを示す setColumnGrand メソッドの値を設定します。
  14. 次に、setAutoFormat メソッドの値を設定します。これは、ピボットテーブル レポートが自動的に書式設定されるかどうかを示します。
  15. setAutoFormatType メソッドを呼び出して、ピボットテーブル autoformat タイプを設定します。
  16. addFieldToArea メソッドを呼び出して、1 番目、2 番目、3 番目、4 番目、および 5 番目のフィールドを行領域にドラッグします。
  17. getDataFields メソッドを呼び出して、最初のデータ フィールドの数値形式を設定します。
  18. save メソッドを呼び出して Excel ファイルを保存します。

次のコードをコピーしてメイン ファイルに貼り付けます。

var aspose = aspose || {};
aspose.cells = require("aspose.cells");
// Workbook クラスのインスタンスをインスタンス化する 
var workbook = new aspose.cells.Workbook();
// get(index) メソッドを呼び出して、最初のワークシートの参照を取得します 
var sheet = workbook.getWorksheets().get(0);
//  setName メソッドを呼び出して、ワークシートの名前を設定します。 
sheet.setName("Data");
// getCells メソッドを呼び出して、Cells コレクションを取得します。 
var cells = sheet.getCells();

// 指定されたセル名の Cell 要素を取得します。 
var cell = cells.get("A1");
// 範囲の値を設定するには、このメソッドを呼び出します。 
cell.setValue("Employee");
// get メソッドを呼び出して、範囲内の Cell オブジェクトを取得します。
cell = cells.get("B1");
cell.setValue("Quarter");
cell = cells.get("C1");
cell.setValue("Product");
cell = cells.get("D1");
cell.setValue("Continent");
cell = cells.get("E1");
cell.setValue("Country");
cell = cells.get("F1");
cell.setValue("Sale");

cell = cells.get("A2");
cell.setValue("David");
cell = cells.get("A3");
cell.setValue("David");
cell = cells.get("A4");
cell.setValue("David");
cell = cells.get("A5");
cell.setValue("David");
cell = cells.get("A6");
cell.setValue("James");
cell = cells.get("A7");
cell.setValue("James");
cell = cells.get("A8");
cell.setValue("James");
cell = cells.get("A9");
cell.setValue("James");
cell = cells.get("A10");
cell.setValue("James");
cell = cells.get("A11");
cell.setValue("Miya");
cell = cells.get("A12");
cell.setValue("Miya");
cell = cells.get("A13");
cell.setValue("Miya");
cell = cells.get("A14");
cell.setValue("Miya");
cell = cells.get("A15");
cell.setValue("Miya");
cell = cells.get("A16");
cell.setValue("Miya");
cell = cells.get("A17");
cell.setValue("Miya");
cell = cells.get("A18");
cell.setValue("Elvis");
cell = cells.get("A19");
cell.setValue("Elvis");
cell = cells.get("A20");
cell.setValue("Elvis");
cell = cells.get("A21");
cell.setValue("Elvis");
cell = cells.get("A22");
cell.setValue("Elvis");
cell = cells.get("A23");
cell.setValue("Elvis");
cell = cells.get("A24");
cell.setValue("Elvis");
cell = cells.get("A25");
cell.setValue("Jean");
cell = cells.get("A26");
cell.setValue("Jean");
cell = cells.get("A27");
cell.setValue("Jean");
cell = cells.get("A28");
cell.setValue("Ada");
cell = cells.get("A29");
cell.setValue("Ada");
cell = cells.get("A30");
cell.setValue("Ada");

cell = cells.get("B2");
cell.setValue("1");
cell = cells.get("B3");
cell.setValue("2");
cell = cells.get("B4");
cell.setValue("3");
cell = cells.get("B5");
cell.setValue("4");
cell = cells.get("B6");
cell.setValue("1");
cell = cells.get("B7");
cell.setValue("2");
cell = cells.get("B8");
cell.setValue("3");
cell = cells.get("B9");
cell.setValue("4");
cell = cells.get("B10");
cell.setValue("4");
cell = cells.get("B11");
cell.setValue("1");
cell = cells.get("B12");
cell.setValue("1");
cell = cells.get("B13");
cell.setValue("2");
cell = cells.get("B14");
cell.setValue("2");
cell = cells.get("B15");
cell.setValue("3");
cell = cells.get("B16");
cell.setValue("4");
cell = cells.get("B17");
cell.setValue("4");
cell = cells.get("B18");
cell.setValue("1");
cell = cells.get("B19");
cell.setValue("1");
cell = cells.get("B20");
cell.setValue("2");
cell = cells.get("B21");
cell.setValue("3");
cell = cells.get("B22");
cell.setValue("3");
cell = cells.get("B23");
cell.setValue("4");
cell = cells.get("B24");
cell.setValue("4");
cell = cells.get("B25");
cell.setValue("1");
cell = cells.get("B26");
cell.setValue("2");
cell = cells.get("B27");
cell.setValue("3");
cell = cells.get("B28");
cell.setValue("1");
cell = cells.get("B29");
cell.setValue("2");
cell = cells.get("B30");
cell.setValue("3");

cell = cells.get("C2");
cell.setValue("Maxilaku");
cell = cells.get("C3");
cell.setValue("Maxilaku");
cell = cells.get("C4");
cell.setValue("Chai");
cell = cells.get("C5");
cell.setValue("Maxilaku");
cell = cells.get("C6");
cell.setValue("Chang");
cell = cells.get("C7");
cell.setValue("Chang");
cell = cells.get("C8");
cell.setValue("Chang");
cell = cells.get("C9");
cell.setValue("Chang");
cell = cells.get("C10");
cell.setValue("Chang");
cell = cells.get("C11");
cell.setValue("Geitost");
cell = cells.get("C12");
cell.setValue("Chai");
cell = cells.get("C13");
cell.setValue("Geitost");
cell = cells.get("C14");
cell.setValue("Geitost");
cell = cells.get("C15");
cell.setValue("Maxilaku");
cell = cells.get("C16");
cell.setValue("Geitost");
cell = cells.get("C17");
cell.setValue("Geitost");
cell = cells.get("C18");
cell.setValue("Ikuru");
cell = cells.get("C19");
cell.setValue("Ikuru");
cell = cells.get("C20");
cell.setValue("Ikuru");
cell = cells.get("C21");
cell.setValue("Ikuru");
cell = cells.get("C22");
cell.setValue("Ipoh Coffee");
cell = cells.get("C23");
cell.setValue("Ipoh Coffee");
cell = cells.get("C24");
cell.setValue("Ipoh Coffee");
cell = cells.get("C25");
cell.setValue("Chocolade");
cell = cells.get("C26");
cell.setValue("Chocolade");
cell = cells.get("C27");
cell.setValue("Chocolade");
cell = cells.get("C28");
cell.setValue("Chocolade");
cell = cells.get("C29");
cell.setValue("Chocolade");
cell = cells.get("C30");
cell.setValue("Chocolade");

cell = cells.get("D2");
cell.setValue("Asia");
cell = cells.get("D3");
cell.setValue("Asia");
cell = cells.get("D4");
cell.setValue("Asia");
cell = cells.get("D5");
cell.setValue("Asia");
cell = cells.get("D6");
cell.setValue("Europe");
cell = cells.get("D7");
cell.setValue("Europe");
cell = cells.get("D8");
cell.setValue("Europe");
cell = cells.get("D9");
cell.setValue("Europe");
cell = cells.get("D10");
cell.setValue("Europe");
cell = cells.get("D11");
cell.setValue("America");
cell = cells.get("D12");
cell.setValue("America");
cell = cells.get("D13");
cell.setValue("America");
cell = cells.get("D14");
cell.setValue("America");
cell = cells.get("D15");
cell.setValue("America");
cell = cells.get("D16");
cell.setValue("America");
cell = cells.get("D17");
cell.setValue("America");
cell = cells.get("D18");
cell.setValue("Europe");
cell = cells.get("D19");
cell.setValue("Europe");
cell = cells.get("D20");
cell.setValue("Europe");
cell = cells.get("D21");
cell.setValue("Oceania");
cell = cells.get("D22");
cell.setValue("Oceania");
cell = cells.get("D23");
cell.setValue("Oceania");
cell = cells.get("D24");
cell.setValue("Oceania");
cell = cells.get("D25");
cell.setValue("Africa");
cell = cells.get("D26");
cell.setValue("Africa");
cell = cells.get("D27");
cell.setValue("Africa");
cell = cells.get("D28");
cell.setValue("Africa");
cell = cells.get("D29");
cell.setValue("Africa");
cell = cells.get("D30");
cell.setValue("Africa");

cell = cells.get("E2");
cell.setValue("China");
cell = cells.get("E3");
cell.setValue("India");
cell = cells.get("E4");
cell.setValue("Korea");
cell = cells.get("E5");
cell.setValue("India");
cell = cells.get("E6");
cell.setValue("France");
cell = cells.get("E7");
cell.setValue("France");
cell = cells.get("E8");
cell.setValue("Germany");
cell = cells.get("E9");
cell.setValue("Italy");
cell = cells.get("E10");
cell.setValue("France");
cell = cells.get("E11");
cell.setValue("U.S.");
cell = cells.get("E12");
cell.setValue("U.S.");
cell = cells.get("E13");
cell.setValue("Brazil");
cell = cells.get("E14");
cell.setValue("U.S.");
cell = cells.get("E15");
cell.setValue("U.S.");
cell = cells.get("E16");
cell.setValue("Canada");
cell = cells.get("E17");
cell.setValue("U.S.");
cell = cells.get("E18");
cell.setValue("Italy");
cell = cells.get("E19");
cell.setValue("France");
cell = cells.get("E20");
cell.setValue("Italy");
cell = cells.get("E21");
cell.setValue("New Zealand");
cell = cells.get("E22");
cell.setValue("Australia");
cell = cells.get("E23");
cell.setValue("Australia");
cell = cells.get("E24");
cell.setValue("New Zealand");
cell = cells.get("E25");
cell.setValue("S.Africa");
cell = cells.get("E26");
cell.setValue("S.Africa");
cell = cells.get("E27");
cell.setValue("S.Africa");
cell = cells.get("E28");
cell.setValue("Egypt");
cell = cells.get("E29");
cell.setValue("Egypt");
cell = cells.get("E30");
cell.setValue("Egypt");

cell = cells.get("F2");
cell.setValue(2000);
cell = cells.get("F3");
cell.setValue(500);
cell = cells.get("F4");
cell.setValue(1200);
cell = cells.get("F5");
cell.setValue(1500);
cell = cells.get("F6");
cell.setValue(500);
cell = cells.get("F7");
cell.setValue(1500);
cell = cells.get("F8");
cell.setValue(800);
cell = cells.get("F9");
cell.setValue(900);
cell = cells.get("F10");
cell.setValue(500);
cell = cells.get("F11");
cell.setValue(1600);
cell = cells.get("F12");
cell.setValue(600);
cell = cells.get("F13");
cell.setValue(2000);
cell = cells.get("F14");
cell.setValue(500);
cell = cells.get("F15");
cell.setValue(900);
cell = cells.get("F16");
cell.setValue(700);
cell = cells.get("F17");
cell.setValue(1400);
cell = cells.get("F18");
cell.setValue(1350);
cell = cells.get("F19");
cell.setValue(300);
cell = cells.get("F20");
cell.setValue(500);
cell = cells.get("F21");
cell.setValue(1000);
cell = cells.get("F22");
cell.setValue(1500);
cell = cells.get("F23");
cell.setValue(1500);
cell = cells.get("F24");
cell.setValue(1600);
cell = cells.get("F25");
cell.setValue(1000);
cell = cells.get("F26");
cell.setValue(1200);
cell = cells.get("F27");
cell.setValue(1300);
cell = cells.get("F28");
cell.setValue(1500);
cell = cells.get("F29");
cell.setValue(1400);
cell = cells.get("F30");
cell.setValue(1000);


// add メソッドを呼び出して新しいシートを追加する 
var sheetIndex = workbook.getWorksheets().add();
// 指定されたインデックスで Worksheet 要素を取得します。 
var sheet2 = workbook.getWorksheets().get(sheetIndex);
// setName メソッドを呼び出してシートに名前を付ける 
sheet2.setName("PivotTable");
// シートでピボットテーブル コレクションを取得する
var pivotTables = sheet2.getPivotTables();
// add メソッドを呼び出して、ピボットテーブルをワークシートに追加します。 
var index = pivotTables.add("=Data!A1:F30", "B3", "PivotTable1");
// 新しく追加されたピボットテーブルのインスタンスを取得します
var pivotTable = pivotTables.get(index);
// setRowGrand メソッドの値を設定して総計を表示する 
pivotTable.setRowGrand(true);
// ピボットテーブル レポートが列の総計を表示するかどうかを示す setColumnGrand メソッドの値を設定します。
pivotTable.setColumnGrand(true);
// ピボットテーブル レポートが自動的に書式設定されるかどうかを示す setAutoFormat メソッドの値を設定します。 
pivotTable.setAutoFormat(true);
// setAutoFormatType メソッドを呼び出して、ピボットテーブルのオートフォーマット タイプを設定します。 
pivotTable.setAutoFormatType(aspose.cells.PivotTableAutoFormatType.REPORT_6);
// addFieldToArea メソッドを呼び出して、1 番目、2 番目、3 番目、4 番目、および 5 番目のフィールドを行領域にドラッグします。 
pivotTable.addFieldToArea(aspose.cells.PivotFieldType.ROW, 0);
pivotTable.addFieldToArea(aspose.cells.PivotFieldType.ROW, 2);
pivotTable.addFieldToArea(aspose.cells.PivotFieldType.ROW, 1);
pivotTable.addFieldToArea(aspose.cells.PivotFieldType.COLUMN, 3);
pivotTable.addFieldToArea(aspose.cells.PivotFieldType.DATA, 5);
// getDataFields メソッドを呼び出して、最初のデータ フィールドの数値形式を設定します。 
pivotTable.getDataFields().get(0).setNumber(7);
// save メソッドを呼び出して Excel ファイルを保存する 
workbook.save(  "pivotTable_test.xls");

以下の画像に出力が表示されます。

Node.js を使用して Excel でピボット テーブルを作成する

プログラムで Excel でピボット グラフを作成する方法

次に、この Excel JavaScript API を使用して、生成されたピボット テーブルに基づいてピボット グラフを作成する機能を実装します。

以下の手順とコード スニペットに従ってください。

  1. Workbook クラスのインスタンスを作成します。
  2. add メソッドを呼び出して、ワークシートをコレクションに add します。
  3. get 指定されたインデックスにある Worksheet 要素。
  4. setName メソッドを呼び出して、シートに名前を付けます。
  5. add メソッドを呼び出して縦棒グラフを追加します。
  6. get 指定されたインデックスにある Chart 要素。
  7. setPivotSource メソッドを呼び出して、ピボット チャートのデータ ソースを設定します。
  8. setHidePivotFieldButtons メソッドを呼び出して、グラフが PivotChart の場合にのみ、ピボット グラフ フィールド ボタンを非表示にします。
  9. save Excelファイル。

次のコードをコピーしてメイン ファイルに貼り付けます。

var aspose = aspose || {};
aspose.cells = require("aspose.cells");
// Workbook クラスのインスタンスを作成する 
var workbook = new aspose.cells.Workbook("pivotTable_test.xls");
// add メソッドを呼び出して、ワークシートをコレクションに追加します。
var sheetIndex = workbook.getWorksheets().add(aspose.cells.SheetType.CHART);
// 指定されたインデックスで Worksheet 要素を取得します。 
var sheet3 = workbook.getWorksheets().get(sheetIndex);
// setName メソッドを呼び出してシートに名前を付ける 
sheet3.setName("PivotChart");
// add メソッドを呼び出して縦棒グラフを追加する 
var chartIndex = sheet3.getCharts().add(aspose.cells.ChartType.COLUMN, 0, 5, 28, 16);
// 指定されたインデックスにある Chart 要素を取得します。 
var chart = sheet3.getCharts().get(chartIndex);
// setPivotSource メソッドを呼び出して、ピボット チャートのデータ ソースを設定します。 
chart.setPivotSource("PivotTable!PivotTable1");
// setHidePivotFieldButtons メソッドを呼び出して、グラフが PivotChart の場合にのみ、ピボット グラフ フィールド ボタンを非表示にします。 
chart.setHidePivotFieldButtons(false);
// エクセルファイルを保存する 
workbook.save( "pivotChart_test.xls");

出力は以下の画像に示されています。

プログラムで Excel でピボット グラフを作成する方法

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

無料の一時ライセンス を利用して、評価制限なしで API を試すことができます。

まとめ

このエンタープライズ レベルの Excel JavaScript API について説明してきました。さらに、プログラムで Node.js を使用して Excel でピボット テーブルを作成する方法を学習し、ピボット チャートを作成する機能も実装しました。さらに、ドキュメント にアクセスして、他の機能を知ることができます。

さらに、Getting Started guide に従うことをお勧めします。

最後に、conholdate.com は常に新しいブログ記事を書いています。したがって、最新のアップデートについては、連絡を取り合ってください。

質問する

フォーラムで質問やクエリをお知らせください。

よくある質問

Excel でピボットテーブルを作成して編集する方法を教えてください。

この Excel JavaScript API をインストールして、プログラムで Excel にピボットテーブルを作成できます。さらに、この リンク にアクセスして、手順とコード スニペットを取得することもできます。

関連項目