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();
}
}
}
}