有没有办法使用C#/ EPPlus为Excel图表设置网格线选项

我正在尝试使用EPPlus和C#创build一个Excelgraphics。 我可以成功创build以下graphics: 图创建 但是,我希望程序在运行时双向创build主要和次要网格线; 所以图表看起来像这样: 图表需要

我知道我可以在Excel中调整这些设置,但我希望能够使用我的代码设置默认网格线。 我无法在EPPlus中find处理该问题的设置(如果有的话,请让我意识到这一点)。 我想弄清楚如何直接定制XML,但是我也遇到了麻烦。

有没有办法可以做到这一点? 任何帮助表示赞赏。

这是有点奇怪,没有被添加,因为它很容易打开。 这里是如何使用XML(如果你想设置颜色和大小,你必须更多地进入XML操作,但这会让你开始):

using (var pck = new ExcelPackage(fileInfo)) { var workbook = pck.Workbook; var worksheet = workbook.Worksheets.Add("Sheet1"); worksheet.Cells.LoadFromDataTable(datatable, true); var chart = worksheet.Drawings.AddChart("chart test", eChartType.XYScatter); 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("c", nsuri); //XY Scatter plots have 2 value axis and no category var valAxisNodes = chartXml.SelectNodes("c:chartSpace/c:chart/c:plotArea/c:valAx", nsm); if (valAxisNodes != null && valAxisNodes.Count > 0) foreach (XmlNode valAxisNode in valAxisNodes) { if (valAxisNode.SelectSingleNode("c:majorGridlines", nsm) == null) valAxisNode.AppendChild(chartXml.CreateNode(XmlNodeType.Element, "c:majorGridlines", nsuri)); if (valAxisNode.SelectSingleNode("c:minorGridlines", nsm) == null) valAxisNode.AppendChild(chartXml.CreateNode(XmlNodeType.Element, "c:minorGridlines", nsuri)); } //Other charts can have a category axis var catAxisNodes = chartXml.SelectNodes("c:chartSpace/c:chart/c:plotArea/c:catAx", nsm); if (catAxisNodes != null && catAxisNodes.Count > 0) foreach (XmlNode catAxisNode in catAxisNodes) { if (catAxisNode.SelectSingleNode("c:majorGridlines", nsm) == null) catAxisNode.AppendChild(chartXml.CreateNode(XmlNodeType.Element, "c:majorGridlines", nsuri)); if (catAxisNode.SelectSingleNode("c:minorGridlines", nsm) == null) catAxisNode.AppendChild(chartXml.CreateNode(XmlNodeType.Element, "c:minorGridlines", nsuri)); } pck.Save(); }