Epplus example `LoadFromCollection <T> (IEnumerable <T>, Boolean, TableStyles, BindingFlags, MemberInfo [])`

When using Epplus ExcelPackage, I usually use a basic function LoadFromCollectionto populate the worksheet, for example as follows:

worksheet.Cells[1, 1].LoadFromCollection(Collection:data, PrintHeaders:true);

In this site , I see a list of other overloads of this function, but no specific examples. It looks interesting. Can someone provide a basic example of using this function?

LoadFromCollection<T>(IEnumerable<T> Collection, Boolean PrintHeaders,
      TableStyles TableStyle, BindingFlags memberFlags, MemberInfo[] Members)

I can see by clicking on the API that TableStyles "is an enumeration that can be assigned like this:

TableStyles TableStyle = OfficeOpenXml.Table.TableStyles.Medium1;

Options memberFlagsand Membersremain a mystery to me.

+3
source share
1

LoadFromCollection Generics , IEnumerable<T>, T . , , List thingy . , :

EPPlus - LoadFromCollection - ,

datalist

var datalist = new List<TestObject>();

worksheet.Cells.LoadFromCollection(datalist);

, (, ) MemberInfo T . Members null ( ),

Members = type.GetProperties(memberFlags);

type

var type = typeof(T);

, , . memberFlags Public Instance ( ).

, :

http://epplus.codeplex.com/SourceControl/latest#EPPlus/ExcelRangeBase.cs

, :

public class TestObject
{
    public int Col1 { get; set; }
    public int Col2 { get; set; }
    public string Col3 { get; set; }
    public DateTime Col4 { get; set; }
}

[TestMethod]
public void LoadFromCollection_MemberList_Test()
{
    ///questions/1548655/epplus-loadfromcollection-text-converted-to-number/4659422#4659422

    var TestObjectList = new List<TestObject>();
    for (var i = 0; i < 10; i++)
        TestObjectList.Add(new TestObject {Col1 = i, Col2 = i*10, Col3 = (i*10) + "E4"});

    //Create a test file
    var fi = new FileInfo(@"c:\temp\LoadFromCollection_MemberList_Test.xlsx");
    if (fi.Exists)
        fi.Delete();

    using (var pck = new ExcelPackage(fi))
    {
        //Do NOT include Col1
        var mi = typeof (TestObject)
            .GetProperties()
            .Where(pi => pi.Name != "Col1")
            .Select(pi => (MemberInfo)pi)
            .ToArray();

        var worksheet = pck.Workbook.Worksheets.Add("Sheet1");
        worksheet.Cells.LoadFromCollection(
            TestObjectList
            , true
            , TableStyles.Dark1
            , BindingFlags.Public| BindingFlags.Instance
            , mi);

        pck.Save();
    }
}

, Col1 :

enter image description here

+6

Source: https://habr.com/ru/post/1548651/


All Articles