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.
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 :
