EPPlus icon indicating copy to clipboard operation
EPPlus copied to clipboard

Support DescriptionAttribute on enum values

Open Jalalx opened this issue 4 years ago • 0 comments

Hello

EPPlus doesn't consider DescriptionAttribute when extracting enum values. For example:

using OfficeOpenXml;
using OfficeOpenXml.Table;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;

namespace EPPlusEnum
{
    class Program
    {
        public enum Gender
        {
            [Description("He")]
            Male,

            [Description("She")]
            Female
        }

        public class Person
        {
            [Description("Full Name")]
            public string Name { get; set; }

            [Description("Pronoun")]
            public Gender Gender { get; set; }
        }


        static void Main(string[] args)
        {
            var people = new List<Person>()
            {
                new Person { Name = "Elon Musk", Gender= Gender.Male },
                new Person { Name = "Ada Lovelace", Gender= Gender.Female },
                new Person { Name = "Dennis Ritchie", Gender= Gender.Male },
                new Person { Name = "Maryam Mirzakhani", Gender= Gender.Female },
            };

            using (var package = new ExcelPackage(new MemoryStream()))
            {
                var sheet = package.Workbook.Worksheets.Add("sheet");
                sheet.Cells["A1"].LoadFromCollection(people, true, TableStyles.Dark1);


                Console.WriteLine(sheet.Cells["A1"].Value);
                Console.WriteLine(sheet.Cells["B1"].Value);

                Console.WriteLine(sheet.Cells["A2"].Value);
                Console.WriteLine(sheet.Cells["B2"].Value);

                Console.WriteLine(sheet.Cells["A3"].Value);
                Console.WriteLine(sheet.Cells["B3"].Value);

                Console.WriteLine(sheet.Cells["A4"].Value);
                Console.WriteLine(sheet.Cells["B4"].Value);

                Console.WriteLine(sheet.Cells["A5"].Value);
                Console.WriteLine(sheet.Cells["B5"].Value);
            }


            Console.ReadKey();
        }
    }
}

Expected output:

Full Name
Pronoun
Elon Musk
He
Ada Lovelace
She
Dennis Ritchie
He
Maryam Mirzakhani
She

Actual output:

Full Name
Pronoun
Elon Musk
Male
Ada Lovelace
Female
Dennis Ritchie
Male
Maryam Mirzakhani
Female

I am using EPPlus 4.5.3.2 on .NET Core 2.2

Do you accept a pull request that adds this feature?

Jalalx avatar Jan 05 '20 06:01 Jalalx