Skip to content

Commit 67759b1

Browse files
Fix case-sensitivity enum parsing bug in ExcelChartAxisStandard MajorTickMark and MinorTickMark (#2370)
Co-authored-by: Lieven De Foor <lieven.de.foor@tvh.com>
1 parent 7978f5c commit 67759b1

2 files changed

Lines changed: 36 additions & 2 deletions

File tree

src/EPPlus/Drawing/Chart/ExcelChartAxisStandard.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public override eAxisTickMark MajorTickMark
7575
{
7676
try
7777
{
78-
return (eAxisTickMark)Enum.Parse(typeof(eAxisTickMark), v);
78+
return (eAxisTickMark)Enum.Parse(typeof(eAxisTickMark), v, true /* ignoreCase */);
7979
}
8080
catch
8181
{
@@ -105,7 +105,7 @@ public override eAxisTickMark MinorTickMark
105105
{
106106
try
107107
{
108-
return (eAxisTickMark)Enum.Parse(typeof(eAxisTickMark), v);
108+
return (eAxisTickMark)Enum.Parse(typeof(eAxisTickMark), v, true /* ignoreCase */);
109109
}
110110
catch
111111
{

src/EPPlusTest/Issues/ChartIssues.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,5 +459,39 @@ public void s1038()
459459
}
460460
}
461461

462+
[TestMethod]
463+
public void ChartAxisTickMarkCaseSensitivity()
464+
{
465+
using (var package = new ExcelPackage())
466+
{
467+
var ws = package.Workbook.Worksheets.Add("Sheet1");
468+
var chart = ws.Drawings.AddChart("chart1", eChartType.ColumnClustered);
469+
470+
// Fetch Category and Value axes
471+
var catAxis = chart.Axis[0];
472+
var valAxis = chart.Axis[1];
473+
474+
// 1. Verify MajorTickMark Case-Insensitive Parsing
475+
valAxis.MajorTickMark = eAxisTickMark.In;
476+
Assert.AreEqual(eAxisTickMark.In, valAxis.MajorTickMark, "MajorTickMark should be parsed back as 'In' instead of defaulting to 'Cross'.");
477+
478+
valAxis.MajorTickMark = eAxisTickMark.Out;
479+
Assert.AreEqual(eAxisTickMark.Out, valAxis.MajorTickMark, "MajorTickMark should be parsed back as 'Out'.");
480+
481+
valAxis.MajorTickMark = eAxisTickMark.None;
482+
Assert.AreEqual(eAxisTickMark.None, valAxis.MajorTickMark, "MajorTickMark should be parsed back as 'None'.");
483+
484+
// 2. Verify MinorTickMark Case-Insensitive Parsing
485+
valAxis.MinorTickMark = eAxisTickMark.In;
486+
Assert.AreEqual(eAxisTickMark.In, valAxis.MinorTickMark, "MinorTickMark should be parsed back as 'In'.");
487+
488+
valAxis.MinorTickMark = eAxisTickMark.Out;
489+
Assert.AreEqual(eAxisTickMark.Out, valAxis.MinorTickMark, "MinorTickMark should be parsed back as 'Out'.");
490+
491+
valAxis.MinorTickMark = eAxisTickMark.None;
492+
Assert.AreEqual(eAxisTickMark.None, valAxis.MinorTickMark, "MinorTickMark should be parsed back as 'None'.");
493+
}
494+
}
495+
462496
}
463497
}

0 commit comments

Comments
 (0)