この回答を使用して、EPPlusで表形式のレイアウトを持つピボットテーブルを作成することができました。
ただし、列見出しが正しく表示されていません。Excelでピボットテーブルを作成すると、列見出し「GAカテゴリ」と「コンテナ」が表示されます。
EPPlusを使用してピボットテーブルを作成すると、列見出し「行ラベル」と「列ラベル」が表示されます。
EPPlusを介して列見出しのセットを作成するにはどうすればよいか疑問に思いました。
この回答を使用して、EPPlusで表形式のレイアウトを持つピボットテーブルを作成することができました。
ただし、列見出しが正しく表示されていません。Excelでピボットテーブルを作成すると、列見出し「GAカテゴリ」と「コンテナ」が表示されます。
EPPlusを使用してピボットテーブルを作成すると、列見出し「行ラベル」と「列ラベル」が表示されます。
EPPlusを介して列見出しのセットを作成するにはどうすればよいか疑問に思いました。
EPPLusを介した列ヘッダーの設定は、現在のパッケージでは実行できません。そのためには、プロジェクトのExcelPivotTable.csを変更して、次のコードを追加する必要がありました。
public string ColHeaderCaption
{
get
{
return GetXmlNodeString("@colHeaderCaption");
}
set
{
SetXmlNodeString("@colHeaderCaption");
}
}
次に、ピボットテーブルクラスを介して行と列のキャプションを設定できます。
'Sheet containing the data
Dim dataSheet as ExcelWorksheet
dataSheet = package.Workbook.WorkSheets(0)
'Data used on pivot table - default to entire sheet
Dim dataRange as ExcelRangeBase
dataRange = dataSheet.Cells(dataSheet.Dimension.Address)
'New sheet for the pivot table
Dim sheet as ExcelWorkSheet
sheet = package.Workbook.Worksheets.Add("Pivot")
package.Workbook.Worksheets.MoveToStart(sheet.Name)
sheet.View.TabSelected = true
'Create the pivot table
Dim pivot as Table.PivotTable.ExcelPivotTable
pivot = sheet.PivotTables.Add(sheet.Cells("A1"), dataRange, "PivotTable")
'Add row field
pivot.RowFields.Add(pivot.Fields("RowField"))
'Set row caption
pivot.RowHeaderCaption = "My Row Caption"
'Add column field
pivot.ColumnFields.Add(pivot.Fields("ColumnField"))
'Set column caption
pivot.ColumnHeaderCaption = "My Column Caption"
EPPlusを変更できない、または変更したくない場合でも、ピボットテーブルの作成後にXMLを変更することで、ピボットテーブルにヘッダーを追加できます。
pivot.PivotTableXml.DocumentElement.SetAttribute("colHeaderCaption", "My Column Caption");