Skip to content

Commit 77e4e9f

Browse files
988313-PivotCalculatedFieldSample
1 parent 9f505b0 commit 77e4e9f

File tree

4 files changed

+86
-0
lines changed

4 files changed

+86
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<Solution>
2+
<Project Path="PivotTablesCalculatedFieldNames/PivotTablesCalculatedFieldNames.csproj" />
3+
</Solution>

FAQ/Pivot Tables Calculated Field Names/.NET/PivotTablesCalculatedFieldNames/PivotTablesCalculatedFieldNames/Output/.gitkeep

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net10.0</TargetFramework>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
</PropertyGroup>
9+
10+
<ItemGroup>
11+
<PackageReference Include="Syncfusion.XlsIO.Net.Core" Version="*" />
12+
</ItemGroup>
13+
14+
<ItemGroup>
15+
<None Update="Output\*">
16+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
17+
</None>
18+
</ItemGroup>
19+
20+
</Project>
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
using Syncfusion.XlsIO;
2+
3+
class Program
4+
{
5+
public static void Main()
6+
{
7+
using (ExcelEngine excelEngine = new ExcelEngine())
8+
{
9+
IApplication application = excelEngine.Excel;
10+
application.DefaultVersion = ExcelVersion.Xlsx;
11+
IWorkbook workbook = application.Workbooks.Create(3);
12+
IWorksheet dataSheet = workbook.Worksheets[0];
13+
IWorksheet pivotSheet1 = workbook.Worksheets[1];
14+
IWorksheet pivotSheet2 = workbook.Worksheets[2];
15+
16+
//Add sample data
17+
dataSheet.Range["A1"].Text = "Product";
18+
dataSheet.Range["B1"].Text = "Sales";
19+
dataSheet.Range["C1"].Text = "Cost";
20+
21+
dataSheet.Range["A2"].Text = "Laptop";
22+
dataSheet.Range["B2"].Number = 5000;
23+
dataSheet.Range["C2"].Number = 3000;
24+
25+
dataSheet.Range["A3"].Text = "Tablet";
26+
dataSheet.Range["B3"].Number = 3000;
27+
dataSheet.Range["C3"].Number = 2000;
28+
29+
dataSheet.Range["A4"].Text = "Phone";
30+
dataSheet.Range["B4"].Number = 4000;
31+
dataSheet.Range["C4"].Number = 2500;
32+
33+
//CASE 1: Shared pivot cache — calculated field names must be unique
34+
IPivotCache sharedCache = workbook.PivotCaches.Add(dataSheet["A1:C4"]);
35+
36+
IPivotTable pivot1 = pivotSheet1.PivotTables.Add("Pivot1", pivotSheet1["A1"], sharedCache);
37+
pivot1.Fields[0].Axis = PivotAxisTypes.Row;
38+
pivot1.DataFields.Add(pivot1.Fields[1], "Total Sales", PivotSubtotalTypes.Sum);
39+
pivot1.CalculatedFields.Add("Profit", "Sales - Cost");
40+
41+
IPivotTable pivot2 = pivotSheet1.PivotTables.Add("Pivot2", pivotSheet1["F1"], sharedCache);
42+
pivot2.Fields[0].Axis = PivotAxisTypes.Row;
43+
pivot2.DataFields.Add(pivot2.Fields[2], "Total Cost", PivotSubtotalTypes.Sum);
44+
pivot2.CalculatedFields.Add("Margin", "Sales - Cost");
45+
46+
//CASE 2: Separate pivot caches — identical or different calculated field names are allowed
47+
IPivotTable pivot3 = pivotSheet2.PivotTables.Add("Pivot3", pivotSheet2["A1"],
48+
workbook.PivotCaches.Add(dataSheet["A1:C4"]));
49+
pivot3.Fields[0].Axis = PivotAxisTypes.Row;
50+
pivot3.DataFields.Add(pivot3.Fields[1], "Total Sales", PivotSubtotalTypes.Sum);
51+
pivot3.CalculatedFields.Add("Profit", "Sales - Cost");
52+
53+
IPivotTable pivot4 = pivotSheet2.PivotTables.Add("Pivot4", pivotSheet2["F1"],
54+
workbook.PivotCaches.Add(dataSheet["A1:C4"]));
55+
pivot4.Fields[0].Axis = PivotAxisTypes.Row;
56+
pivot4.DataFields.Add(pivot4.Fields[2], "Total Cost", PivotSubtotalTypes.Sum);
57+
pivot4.CalculatedFields.Add("Profit", "Sales - Cost");
58+
59+
//Saving the workbook
60+
workbook.SaveAs(Path.GetFullPath(@"Output/Output.xlsx"));
61+
}
62+
}
63+
}

0 commit comments

Comments
 (0)