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:
- 实例化 Workbook 类的实例。
- 通过调用 get(index) 方法获取第一个工作表的引用。
- 通过调用 setName 方法设置工作表的名称。
- 调用 getCells 方法获取 Cells 集合。
- Get 指定单元格名称处的单元格元素。
- 调用此 setValue 方法来设置范围的值。
- 通过调用 get 方法获取范围内的 Cell 对象。
- 通过调用 add 方法添加新工作表。
- get 指定索引处的 Worksheet 元素。
- 通过调用 setName 方法命名工作表。
- 通过调用 add 方法将数据透视表添加到工作表。
- 通过设置setRowGrand方法的值来显示总计。
- 设置 setColumnGrand 方法的值,该值指示数据透视表是否显示列的总计。
- 现在,设置 setAutoFormat 方法的值,指示数据透视表是否自动格式化。
- 通过调用 setAutoFormatType 方法设置 PivotTable autoformat 类型。
- 调用addFieldToArea方法将第一、二、三、四、五字段拖到行区。
- 调用getDataFields方法设置第一个数据字段的数字格式。
- 调用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");
您可能会在下图中看到输出:
如何以编程方式在 Excel 中制作数据透视图
现在,我们将使用此 Excel JavaScript API 实现基于生成的数据透视表创建数据透视图的功能。
您可以按照下面提到的步骤和代码段进行操作:
- 创建 Workbook 类的实例。
- 调用 add 方法以 add 将工作表添加到集合中。
- get 指定索引处的 Worksheet 元素。
- 通过调用 setName 方法命名工作表。
- 通过调用 add 方法添加柱形图。
- get 指定索引处的 Chart 元素。
- 调用 setPivotSource 方法设置数据透视图数据源。
- 调用 setHidePivotFieldButtons 方法以仅在图表为 PivotChart 时隐藏数据透视图字段按钮。
- 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");
输出如下图所示:
获得免费许可证
您可以使用 免费临时许可证 来试用 API,而不受评估限制。
加起来
正如您已经了解了这个企业级 Excel JavaScript API。此外,您还学习了如何以编程方式使用 Node.js 在 Excel 中创建数据透视表,并且我们还实现了制作数据透视图的功能。此外,您可以访问 文档 以了解其他功能。
此外,我们建议您遵循我们的 入门指南。
最后,conholdate.com 一直在撰写新的博客文章。因此,请保持联系以获取最新更新。
问一个问题
您可以在我们的 论坛 上告诉我们您的问题或疑问。
常见问题
如何在 Excel 中创建数据透视表并对其进行编辑?
您可以安装此 Excel JavaScript API 以编程方式在 Excel 中创建数据透视表。此外,您可以访问此 链接 以获取步骤和代码片段。