В этом кратком руководстве рассказывается, как создать сводную таблицу в Excel с помощью C#. Для создания сводной таблицы программным путем предоставляется код C# и подробное описание, так что в конце вы получите файл XLSX (или XLS), содержащий сводную таблицу, без использования каких-либо других третьих партийный инструмент. Он также содержит шаги, которые помогут добавить разные поля в разные области сводной таблицы.
Шаги по созданию сводной таблицы в C#
- Установите среду для добавления Aspose.Cells for .NET из диспетчера пакетов NuGet для создания сводной таблицы.
- Создайте или загрузите существующую workbook с данными для сводной таблицы.
- Получите доступ к цели worksheet, где должна быть добавлена сводная таблица.
- Создайте сводную таблицу и получите ее экземпляр для дальнейшей обработки
- Настройте новую сводную таблицу и добавьте различные поля в столбец, строку и область данных.
- Сохраните полученную книгу со сводной таблицей.
После создания среды для создания сводной таблицы 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 на С#.