Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EPPlus custom header column names

Tags:

c#

epplus

I have following code, which generate me an excel with header row. The column names of header are named as variables in DataItem class.

// class for single row item
    public class DataItem
    {
        public int Number { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Country { get; set; }
    }

    // Retrive data items from database and store into conllection.
    var rows = database.GetData().ToList();

    // Create table from collection with automatic header
    ws.Cells["A1"].LoadFromCollection(rows, true, TableStyles.Medium25);

excel header output :

Number | FirstName | LastName | Country

How my output can be customized for example (spaces added etc.):

Number | First Name | Last Name | Country
like image 570
Muflix Avatar asked Feb 10 '16 09:02

Muflix


2 Answers

I have it, solution is following

ws.Cells["A1"].Value = "Number";
ws.Cells["B1"].Value = "First Name";
ws.Cells["C1"].Value = "Last Name";
ws.Cells["D1"].Value = "Country";
like image 84
Muflix Avatar answered Nov 20 '22 17:11

Muflix


Use DescriptionAttribute from System.ComponentModel namespace to set column names in the header.

public class DataItem
{
    public int Number { get; set; }

    [Description("First name")]
    public string FirstName { get; set; }

    [Description("Last name")]
    public string LastName { get; set; }

    public string Country { get; set; }
}
like image 33
Patrick Avatar answered Nov 20 '22 17:11

Patrick