我们可以使用 EPPlus 在 Excel 表中生成图表。需要添加图表元素>>带有图例的数据表。有没有办法使用 EPPlus 添加它?你可以在这里查看我正在寻找的图表
问问题
787 次
1 回答
0
EPPlus 不支持向图表添加数据表。您可以通过一些 XML 操作相当容易地打开它,但是如果您想对其进行样式设置,则需要更多地了解它。最好以您喜欢的方式创建图表,将其保存并将 XLSX 作为 ZIP 文件打开并查看图表 XML。
这是您如何使用 Legend 显示默认数据表以帮助您入门的方式:
using (var pck = new ExcelPackage(fileInfo))
{
var workbook = pck.Workbook;
var worksheet = workbook.Worksheets.Add("Sheet1");
worksheet.Cells.LoadFromDataTable(datatable, true);
//Assume some data range
var chart = worksheet.Drawings.AddChart("chart test", eChartType.Area);
var series = chart.Series.Add(worksheet.Cells["B2:B11"], worksheet.Cells["A2:A11"]);
//Get reference to the worksheet xml for proper namespace
var chartXml = chart.ChartXml;
var nsuri = chartXml.DocumentElement.NamespaceURI;
var nsm = new XmlNamespaceManager(chartXml.NameTable);
nsm.AddNamespace("default", nsuri);
//Add the table node
var plotAreaNode = chartXml.SelectSingleNode("/default:chartSpace/default:chart/default:plotArea", nsm);
var dTableNode = chartXml.CreateNode(XmlNodeType.Element, "dTable", nsuri);
plotAreaNode.AppendChild(dTableNode);
//With Legend Flag
var att = chartXml.CreateAttribute("val");
att.Value = "1";
var showKeysNode = chartXml.CreateNode(XmlNodeType.Element, "showKeys", nsuri);
showKeysNode.Attributes.Append(att);
dTableNode.AppendChild(showKeysNode);
pck.Save();
}
于 2015-12-11T15:15:49.213 回答