EPPlus - 如何在数据透视图中添加 "Series Lines" (ColumnStacked)
EPPlus - How to add "Series Lines" in Pivot Chart (ColumnStacked)
我正在使用 EPPlus 库在 excel 中生成数据透视图。
我创建了图表,但不知道如何向其中添加 "Series Lines"。
下图中的箭头表示系列线。
这里是示例代码。
var wsBar = pck.Workbook.Worksheets.Add("Bar");
--dataRange = Data from "Data" worksheet.
var pivotTable1 = wsBar.PivotTables.Add(wsBar.Cells["Z100"], dataRange, "pivotTable1");
var dataFieldBar1 = pivotTable1.DataFields.Add(pivotTable1.Fields[22]);
dataFieldBar1.Format = "$ #,###.00";
pivotTable1.DataOnRows = true;
pivotTable1.RowFields.Add(pivotTable1.Fields[15]);
pivotTable1.ColumnFields.Add(pivotTable1.Fields[12]);
pivotTable1.PageFields.Add(pivotTable1.Fields[7]);
var columnchart = wsBar.Drawings.AddChart("ColumnChart", eChartType.ColumnStacked, pivotTable1);
columnchart.SetPosition(0, 0, 0, 0);
columnchart.SetSize(600, 300);
非常感谢任何帮助。
不要认为 EPPlus 有这个选项,所以它会是某种 XML 没有另一个库的操作:
var chartXml = columnchart.ChartXml;
var nsm = new XmlNamespaceManager(chartXml.NameTable);
var nsuri = chartXml.DocumentElement.NamespaceURI;
nsm.AddNamespace("c", nsuri);
var serNode = chartXml.SelectSingleNode("c:chartSpace/c:chart/c:plotArea/c:barChart", nsm);
var serLinesNode = chartXml.CreateNode(XmlNodeType.Element, "serLines", nsuri);
serNode.AppendChild(serLinesNode);
我正在使用 EPPlus 库在 excel 中生成数据透视图。 我创建了图表,但不知道如何向其中添加 "Series Lines"。 下图中的箭头表示系列线。
这里是示例代码。
var wsBar = pck.Workbook.Worksheets.Add("Bar");
--dataRange = Data from "Data" worksheet.
var pivotTable1 = wsBar.PivotTables.Add(wsBar.Cells["Z100"], dataRange, "pivotTable1");
var dataFieldBar1 = pivotTable1.DataFields.Add(pivotTable1.Fields[22]);
dataFieldBar1.Format = "$ #,###.00";
pivotTable1.DataOnRows = true;
pivotTable1.RowFields.Add(pivotTable1.Fields[15]);
pivotTable1.ColumnFields.Add(pivotTable1.Fields[12]);
pivotTable1.PageFields.Add(pivotTable1.Fields[7]);
var columnchart = wsBar.Drawings.AddChart("ColumnChart", eChartType.ColumnStacked, pivotTable1);
columnchart.SetPosition(0, 0, 0, 0);
columnchart.SetSize(600, 300);
非常感谢任何帮助。
不要认为 EPPlus 有这个选项,所以它会是某种 XML 没有另一个库的操作:
var chartXml = columnchart.ChartXml;
var nsm = new XmlNamespaceManager(chartXml.NameTable);
var nsuri = chartXml.DocumentElement.NamespaceURI;
nsm.AddNamespace("c", nsuri);
var serNode = chartXml.SelectSingleNode("c:chartSpace/c:chart/c:plotArea/c:barChart", nsm);
var serLinesNode = chartXml.CreateNode(XmlNodeType.Element, "serLines", nsuri);
serNode.AppendChild(serLinesNode);