
How to Create a Pivot Table in Excel using Node.js
بهترین ویژگی فایلهای Excel این است که میتوانید در هر مرحله از تجسم یا جمعآوری دادهها تغییرات را اعمال کنید. MS Excel هنوز هم در صدر لیست برای سازماندهی دادهها و انجام محاسبات پیچیده قرار دارد. در این پست وبلاگ، یاد خواهیم گرفت که چگونه یک جدول محوری (Pivot table) در Excel به طور برنامهنویسی با استفاده از Node.js ایجاد کنیم. علاوه بر این، همچنین به چگونگی ایجاد یک نمودار محوری (Pivot chart) در فایل Excel بر اساس یک جدول محوری خواهیم پرداخت. برای این کار، این API Java اسکریپت Excel را در پروژه Node.js خود نصب خواهیم کرد.
قسمتهای زیر پوشش داده خواهند شد:
- نصب API Java اسکریپت اکسل
- چگونه یک جدول محوری در اکسل با استفاده از Node.js ایجاد کنیم
- چطور یک نمودار محوری در اکسل به صورت برنامهنویسی ایجاد کنیم
نصب API JavaScript اکسل
برای نصب این کتابخانه قدرتمند، شما یا download بسته API را دانلود میکنید یا با اجرای دستورات زیر آن را نصب میکنید:
npm install java
npm install aspose.cells
چگونه یک جدول محوری در اکسل با استفاده از Node.js ایجاد کنیم
در این بخش، مراحل زیر و کد اسنیپتی که یک جدول محوری را به صورت برنامهنویسی در Excel ایجاد میکند، خواهیم نوشت.
شما میتوانید مراحل زیر و کد نمونه را برای تبدیل Excel به DataTable در C# دنبال کنید:
- یک نمونه از کلاس Workbook را ایجاد کنید.
- مرجع اولین ورق کار را با فراخوانی روش get(index) دریافت کنید.
- نام ورق کار را با فراخوانی روش setName تنظیم کنید.
- متد getCells را فراخوانی کنید تا مجموعه Cells را دریافت کنید.
- دریافت عنصر سلول با نام سلول مشخص شده.
- Call this setValue method to set the value of the range.
- با تماس با get متد، شیء Cell را در محدوده دریافت کنید.
- افزودن یک برگه جدید با فراخوانی متد add.
- get عنصر Worksheet را در شاخص مشخص شده دریافت کنید.
- نام برگه را با استفاده از روش setName تعیین کنید.
- یک جدول محوری به برگه کار اضافه کنید با فراخوانی روش add.
- مجموع کل را با تنظیم مقدار متد setRowGrand نمایش دهید.
- مقدار متد setColumnGrand را تنظیم کنید که نشان میدهد آیا گزارش PivotTable مقادیر کل را برای ستونها نمایش میدهد یا خیر.
- اکنون، مقدار روش setAutoFormat را تنظیم کنید که نشان میدهد آیا گزارش PivotTable به طور خودکار فرمتبندی شده است یا خیر.
- نوع جدول محوری autoformat را با فراخوانی متد setAutoFormatType تنظیم کنید.
- متد addFieldToArea را برای کشیدن اولین، دومین، سومین، چهارمین و پنجمین فیلدها به ناحیه ردیف فراخوانی کنید.
- فرمت عددی اولین فیلد داده را با فراخوانی متد getDataFields تنظیم کنید.
- ذخیره فایل اکسل با فراخوانی روش save.
کد زیر را کپی کرده و در فایل اصلی خود بچسبانید:
var aspose = aspose || {};
aspose.cells = require("aspose.cells");
// یک نمونه از کلاس Workbook را ایجاد کنید.
var workbook = new aspose.cells.Workbook();
// مرجع اولین برگه کار را با فراخوانی روش get(index) دریافت کنید.
var sheet = workbook.getWorksheets().get(0);
// set the name of the worksheet by invoking the setName method.
sheet.setName("Data");
// Call the getCells method to get the Cells collection.
var cells = sheet.getCells();
// به عنصر سلول با نام سلول مشخص شده دسترسی پیدا کنید.
var cell = cells.get("A1");
// این متد را برای تنظیم مقدار محدوده فراخوانی کنید.
cell.setValue("Employee");
// Get Cell object in the range by calling the get method .
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");
// به دست آوردن مجموعه pivottables در شیت
var pivotTables = sheet2.getPivotTables();
// یک PivotTable به صفحه کار اضافه کنید با استفاده از روش add
var index = pivotTables.add("=Data!A1:F30", "B3", "PivotTable1");
// مشخصهی PivotTable تازه افزوده شده را بگیرید
var pivotTable = pivotTables.get(index);
// مجموعهای کل را با تنظیم مقدار روش setRowGrand نمایش دهید.
pivotTable.setRowGrand(true);
// مقدار متد setColumnGrand را تنظیم کنید که نشان دهد آیا گزارش PivotTable جمع کل برای ستون ها را نشان می دهد یا خیر.
pivotTable.setColumnGrand(true);
// مقدار متد setAutoFormat را تنظیم کنید که نشان دهد آیا گزارش PivotTable به طور خودکار فرمت بندی شده است.
pivotTable.setAutoFormat(true);
// نوع فرمت خودکار PivotTable را با فراخوانی متد 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);
// ذخیره کردن فایل اکسل با فراخوانی متد ذخیره
workbook.save( "pivotTable_test.xls");
شما ممکن است خروجی را در تصویر زیر ببینید:

چگونه میتوان یک نمودار پیوت در Excel بهطور برنامهنویسی ایجاد کرد
حالا، ما قابلیت ایجاد یک نمودار Pivot بر اساس جدول Pivot تولید شده را با استفاده از این API Java اسکریپت اکسل پیادهسازی خواهیم کرد.
شما میتوانید مراحل و کد ذکر شده در زیر را دنبال کنید:
- یک نمونه از کلاس Workbook ایجاد کنید.
- متد add را برای add یک برگه کاری به مجموعه فراخوانی کنید.
- get عنصر Worksheet را در اندیس مشخص شده دریافت کنید.
- نام ورق را با فراخوانی متد setName تعیین کنید.
- یک نمودار ستونی با فراخوانی روش add اضافه کنید.
- get عنصر نمودار در ایندکس مشخص شده را بگیرید.
- Invoke the setPivotSource method to set the pivot chart data source.
- Call the setHidePivotFieldButtons method to either hide the pivot chart field buttons only when the chart is PivotChart.
- ذخیره فایل Excel.
کد زیر را کپی کرده و در فایل اصلی خود بچسبانید:
var aspose = aspose || {};
aspose.cells = require("aspose.cells");
// یک نمونه از کلاس Workbook ایجاد کنید
var workbook = new aspose.cells.Workbook("pivotTable_test.xls");
// Invoke the add method to add a worksheet to the collection.
var sheetIndex = workbook.getWorksheets().add(aspose.cells.SheetType.CHART);
// get the Worksheet element at the specified index.
var sheet3 = workbook.getWorksheets().get(sheetIndex);
// نام برگه را با فراخوانی متد setName تعیین کنید
sheet3.setName("PivotChart");
// یک نمودار ستونی با فراخوانی متد اضافه کنید
var chartIndex = sheet3.getCharts().add(aspose.cells.ChartType.COLUMN, 0, 5, 28, 16);
// عنصری از نمودار را در شاخص مشخص شده دریافت کنید.
var chart = sheet3.getCharts().get(chartIndex);
// متد setPivotSource را فراخوانی کنید تا منبع داده نمودار محوری را تنظیم کنید.
chart.setPivotSource("PivotTable!PivotTable1");
// Call the setHidePivotFieldButtons method to either hide the pivot chart field buttons only when the chart is PivotChart.
chart.setHidePivotFieldButtons(false);
// فایل اکسل را ذخیره کنید
workbook.save( "pivotChart_test.xls");
خروجی در تصویر زیر نمایش داده شده است:

Get a Free License
شما میتوانید از یک مجوز موقت رایگان برای امتحان کردن API بدون محدودیتهای ارزیابی استفاده کنید.
خلاصه کردن
همانطور که شما از این API Java اسکریپت اکسل در سطح سازمانی عبور کردهاید. علاوه بر این، شما یاد گرفتهاید که چگونه بهطور برنامهنویسی یک جدول محوری در اکسل با استفاده از Node.js ایجاد کنید و همچنین ما قابلیت ایجاد یک نمودار محوری را پیادهسازی کردهایم. علاوه بر این، شما میتوانید به documentation مراجعه کنید تا با دیگر ویژگیها آشنا شوید.
علاوه بر این، ما پیشنهاد میکنیم که راهنمای Getting Started guide ما را دنبال کنید.
سرانجام، conholdate.com به طور مداوم در حال نوشتن پستهای جدید وبلاگ است. بنابراین، لطفاً برای دریافت آخرین بهروزرسانیها در تماس باشید.
Ask a question
شما میتوانید درباره سوالات یا ابهامات خود در forum به ما اطلاع دهید.
سؤالات متداول
چگونه میتوانید یک PivotTable در Excel ایجاد کرده و آن را ویرایش کنید؟
شما میتوانید این JavaScript Excel API را نصب کنید تا به صورت برنامهنویسی یک PivotTable در Excel ایجاد کنید. علاوه بر این، میتوانید به این link مراجعه کنید تا مراحل و قطعه کد را دریافت کنید.