如何使用 Node.js 在 Excel 中创建数据透视表

如何使用 Node.js 在 Excel 中创建数据透视表

Excel 文件的最大优点是您可以在任何数据可视化或编译阶段进行修改。 MS Excel 仍然是组织数据和执行复杂计算的首选。在这篇博文中,我们将学习如何以编程方式使用 Node.js 在 Excel 中创建数据透视表。此外,我们还将介绍如何基于数据透视表在 Excel 文件中制作数据透视图。为此,我们将在我们的 Node.js 项目中安装这个 Excel JavaScript API

将涵盖以下部分:

Excel JavaScript API 安装

要安装这个强大的库,您可以 下载 API 包或通过运行以下命令来安装它:

npm install java
npm install aspose.cells

如何使用 Node.js 在 Excel 中创建数据透视表

在本节中,我们将编写以下步骤以及以编程方式在 Excel 中创建数据透视表的代码片段。

您可以按照以下步骤和代码片段在 C# 中将 Excel 转换为 DataTable:

  1. 实例化 Workbook 类的实例。
  2. 通过调用 get(index) 方法获取第一个工作表的引用。
  3. 通过调用 setName 方法设置工作表的名称。
  4. 调用 getCells 方法获取 Cells 集合。
  5. Get 指定单元格名称处的单元格元素。
  6. 调用此 setValue 方法来设置范围的值。
  7. 通过调用 get 方法获取范围内的 Cell 对象。
  8. 通过调用 add 方法添加新工作表。
  9. get 指定索引处的 Worksheet 元素。
  10. 通过调用 setName 方法命名工作表。
  11. 通过调用 add 方法将数据透视表添加到工作表。
  12. 通过设置setRowGrand方法的值来显示总计。
  13. 设置 setColumnGrand 方法的值,该值指示数据透视表是否显示列的总计。
  14. 现在,设置 setAutoFormat 方法的值,指示数据透视表是否自动格式化。
  15. 通过调用 setAutoFormatType 方法设置 PivotTable autoformat 类型。
  16. 调用addFieldToArea方法将第一、二、三、四、五字段拖到行区。
  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();

// 获取指定单元格名称处的单元格元素。 
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 方法将第一个、第二个、第三个、第四个和第五个字段拖到行区域。 
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);
// 保存 Excel 文件 
workbook.save( "pivotChart_test.xls");

输出如下图所示:

如何以编程方式在 Excel 中制作数据透视图

获得免费许可证

您可以使用 免费临时许可证 来试用 API,而不受评估限制。

加起来

正如您已经了解了这个企业级 Excel JavaScript API。此外,您还学习了如何以编程方式使用 Node.js 在 Excel 中创建数据透视表,并且我们还实现了制作数据透视图的功能。此外,您可以访问 文档 以了解其他功能。

此外,我们建议您遵循我们的 入门指南

最后,conholdate.com 一直在撰写新的博客文章。因此,请保持联系以获取最新更新。

问一个问题

您可以在我们的 论坛 上告诉我们您的问题或疑问。

常见问题

如何在 Excel 中创建数据透视表并对其进行编辑?

您可以安装此 Excel JavaScript API 以编程方式在 Excel 中创建数据透视表。此外,您可以访问此 链接 以获取步骤和代码片段。

也可以看看