diegodfsd
1/30/2013 - 12:36 PM

gistfile1.cs

public class ExcelLogExporter : IExcelLogExporter
    {
        internal class Colunas
        {
            public const int DATE = 1;
            public const int ID = 2;
            public const int NAME = 3;
            public const int CPF = 4;
            public const int EMAIL = 5;
            public const int ROLE = 6;
            public const int DEPARTMENT = 7;
            public const int LEVEL = 8;
            public const int COUNTRY = 9;
            public const int GENDER = 10;
            public const int DATEOFBIRTH = 11;
            public const int ERRORS = 12;
        }

        private const string WORKSHEET_NAME = "Pessoal";

        public void Generate(IEnumerable<ValidateResult<Person>> validateResults)
        {
                var template = new FileInfo("caminho do template .xlsx");
                var destination = new FileInfo("caminho onde será salva a nova planilha .xlsx");

                using (var excelPackge = new ExcelPackage(destination, template))
                {
                    var workBook = excelPackge.Workbook;
                    var workSheet = workBook.Worksheets[WORKSHEET_NAME];

                    validateResults.EachWithIndex((validateResult, row) =>
                                              {                                                  
                                                      workSheet.SetValue(row, Colunas.DATE, DateTime.Today);
                                                      workSheet.SetValue(row, Colunas.ID, validateResult.Model.Id);
                                                      workSheet.SetValue(row, Colunas.NAME, validateResult.Model.Name);
                                                      workSheet.SetValue(row, Colunas.CPF, validateResult.Model.CPF);
                                                      workSheet.SetValue(row, Colunas.EMAIL, validateResult.Model.Email);
                                                      workSheet.SetValue(row, Colunas.ROLE, validateResult.Model.Role.ValueOrDefault(""));
                                                      workSheet.SetValue(row, Colunas.DEPARTMENT, validateResult.Model.Department.ValueOrDefault(""));
                                                      workSheet.SetValue(row, Colunas.LEVEL, validateResult.Model.UserLevel.ValueOrDefault(""));
                                                      workSheet.SetValue(row, Colunas.COUNTRY, validateResult.Model.Country.ValueOrDefault(""));
                                                      workSheet.SetValue(row, Colunas.GENDER, validateResult.Model.Gender);
                                                      workSheet.SetValue(row, Colunas.DATEOFBIRTH, validateResult.Model.DateOfBirth);
                                                      workSheet.SetValue(row, Colunas.ERRORS, validateResult.Message);
                                                  
                                              }, startIn: 2);

                    excelPackge.Save();
                }
            }     
        }
    }