1

我正在使用 EPPlus 库在 Excel 中生成数据透视图。我创建了图表,但不知道如何向其中添加“系列线”。下图中的箭头表示系列线。

图表 - 系列线

这是示例代码。

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);

非常感谢任何帮助。

4

1 回答 1

0

不要认为 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);
于 2016-04-02T15:03:17.680 回答