Как создать сводную таблицу в Excel с помощью C#

В этом кратком руководстве рассказывается, как создать сводную таблицу в Excel с помощью C#. Для создания сводной таблицы программным путем предоставляется код C# и подробное описание, так что в конце вы получите файл XLSX (или XLS), содержащий сводную таблицу, без использования каких-либо других третьих партийный инструмент. Он также содержит шаги, которые помогут добавить разные поля в разные области сводной таблицы.

Шаги по созданию сводной таблицы в C#

  1. Установите среду для добавления Aspose.Cells for .NET из диспетчера пакетов NuGet для создания сводной таблицы.
  2. Создайте или загрузите существующую workbook с данными для сводной таблицы.
  3. Получите доступ к цели worksheet, где должна быть добавлена сводная таблица.
  4. Создайте сводную таблицу и получите ее экземпляр для дальнейшей обработки
  5. Настройте новую сводную таблицу и добавьте различные поля в столбец, строку и область данных.
  6. Сохраните полученную книгу со сводной таблицей.

После создания среды для создания сводной таблицы C# Excel, описанной здесь, мы создаем новую рабочую книгу, содержащую жестко закодированные данные, однако вы можете загрузить существующий файл Excel, также содержащий целевые данные. На следующих шагах далее описывается процесс создания сводной таблицы, а затем ее конфигурация. На последних шагах разные поля добавляются в разные области сводной таблицы, такие как столбец, строка и данные.

Код для создания сводной таблицы в Excel с использованием С#

using System.IO;
using System.Text;
using Aspose.Cells;
namespace CreatePivotTableInExcelUsingCSharp
{
class Program
{
static void Main(string[] args) // Main function to set width of cell in CSharp
{
// Instantiate the license to remove trial version watermark in the output Excel file
Aspose.Cells.License licForCells= new Aspose.Cells.License();
licForCells.SetLicense("Aspose.Cells.lic");
// Set the hard-coded data. You may use an existing Excel file also if required
byte[] SrcDataByteArray = Encoding.ASCII.GetBytes(
$@"City,Product,Sales
Paris,Cream,2300
Paris,Lotion,1600
Tunis,Cream,900
Tunis,Lotion,1400
Tunis,Cream,3090
Tunis,Lotion,6000
Paris,Cream,4320" );
// Create a memory stream from the source data
MemoryStream dataStream = new MemoryStream( SrcDataByteArray );
// Create LoadOptions class object to load the comma-separated data given above
LoadOptions loadOptions = new LoadOptions(LoadFormat.Csv);
// Instantiate a workbook class object having above mentioned data
Workbook wbCSV = new Workbook(dataStream, loadOptions);
// Get access to the first worksheet in the collection
Worksheet targetSheet = wbCSV.Worksheets[0];
// Get collection of pivot tables in the target worksheet
Aspose.Cells.Pivot.PivotTableCollection pvTablesCollection = targetSheet.PivotTables;
// Get pivot table index after adding a new pivot table by provding source data range and destination cell
int iNewPivotTable = pvTablesCollection.Add("=A1:C8", "F3", "MyPivotTable");
// Get the instance of newly added pivot table for further processing
Aspose.Cells.Pivot.PivotTable newPivotTable = pvTablesCollection[iNewPivotTable];
// Hide the grand total for rows in the output Excel file
newPivotTable.RowGrand = false;
// Add the first field to the column area
newPivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Column, 0);
// Add the second field to the row area
newPivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Row, 1);
// Add the third field to the data area
newPivotTable.AddFieldToArea(Aspose.Cells.Pivot.PivotFieldType.Data, 2);
// Saving the output Excel file with pivot table
wbCSV.Save("OutputPivotTable.xlsx");
System.Console.WriteLine("Done");
}
}
}

В этом примере кода показано, как создать сводную таблицу на C#, указав диапазон данных и ячейку назначения, в которую должна быть помещена сводная таблица, а также имя сводной таблицы. В классе pivotTable есть функция AddFieldToArea(), которая используется для перетаскивания разных полей в разные области с помощью pivotFieldType, например Column, Row или Data, вместе с номером поля в выбранном диапазоне данных. Вы также можете использовать другую страницу pivotFieldType, если это необходимо.

В этой статье мы научились добавлять сводную таблицу Excel в C#. Если вы хотите научиться экспортировать данные в виде списка в Excel, обратитесь к статье как экспортировать данные списка в Excel на С#.

 Русский