Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#中没有网格线的epplus图表(它是一个web应用程序)_C#_Charts_Epplus - Fatal编程技术网

c#中没有网格线的epplus图表(它是一个web应用程序)

c#中没有网格线的epplus图表(它是一个web应用程序),c#,charts,epplus,C#,Charts,Epplus,我正在尝试使用epplus和c#在excel文件中创建图表。 我能够创建图形,我正在尝试删除图形中的网格线,如图所示。我找到了在windows应用程序中实现它的解决方案,但我想在web应用程序中实现它,下面是我用来生成图形的代码 ExcelRange erLossesRangeMacInv = worksheet.Cells["G5:G10"]; var chartOEE=(ExcelBarChart)worksheetGraph.Drawings.AddChart("barChartOEE",

我正在尝试使用epplus和c#在excel文件中创建图表。 我能够创建图形,我正在尝试删除图形中的网格线,如图所示。我找到了在windows应用程序中实现它的解决方案,但我想在web应用程序中实现它,下面是我用来生成图形的代码

ExcelRange erLossesRangeMacInv = worksheet.Cells["G5:G10"];
var chartOEE=(ExcelBarChart)worksheetGraph.Drawings.AddChart("barChartOEE", eChartType.ColumnClustered);
chartOEE.SetSize(300, 300);//Setting size of graph
chartOEE.SetPosition(10, 10); // position of graph in excel
chartOEE.Title.Text = "OEE";
ExcelRange erLossesRangeOEE = worksheet.Cells["M5:M10"]; 
chartOEE.Style = eChartStyle.Style10;
chartOEE.Legend.Remove();
chartOEE.DataLabel.ShowValue = true;
chartOEE.YAxis.MaxValue = 100;
chartOEE.Series.Add(erLossesRangeOEE, erLossesRangeMacInv);
我找到了在windows窗体中工作的代码

chartOEE.ChartAreas["ChartArea1"].AxisX.MajorGrid.Enabled = false;
如何在“Web应用程序”中使用epplus和c#

更新

我创建了一个PR,该PR已被接受,允许删除网格线。应在下一版本中(无论何时)发布,因此请注意:

可以这样使用:

axis.RemoveGridlines(); //Removes major and minor
axis.RemoveGridlines(true, true); //Can choose major or minor with bools.
原创的

奇怪的是,他们没有将其作为
EPPlus
的一个选项添加,因为它只需要基本的xml操作。Web或桌面应该不会有什么不同,只要删除xml引用就可以了。这应该做到:

using (var pck = new ExcelPackage(fileInfo))
{
    var workbook = pck.Workbook;
    var worksheet = workbook.Worksheets.Add("Sheet1");

    //datatable is just some made up Table object
    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)
        {
            var major = valAxisNode.SelectSingleNode("c:majorGridlines", nsm);
            if (major != null)
                valAxisNode.RemoveChild(major);

            var minor = valAxisNode.SelectSingleNode("c:minorGridlines", nsm);
            if (minor != null)
                valAxisNode.RemoveChild(minor);
        }

    //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)
        {
            var major = catAxisNode.SelectSingleNode("c:majorGridlines", nsm);
            if (major != null)
                catAxisNode.RemoveChild(major);

            var minor = catAxisNode.SelectSingleNode("c:minorGridlines", nsm);
            if (minor != null)
                catAxisNode.RemoveChild(minor);
        }

    pck.Save();
}
因此:


什么图像?:)哎呀,我没有足够的信誉点上传图片。我添加了一个链接(我问题的第一件事),这对条形图、直线图和叠层柱形图非常有效。:)直到今天,它还没有包含在EPPLUS v4.1.1中。0@KMC4.1.1主要用于VBA修补程序。目前处于测试阶段的版本4.5可能会包含它。