public void Initialize(string outputFile, GeneratorSettings settings)
        {
            //reset main settings
            ConversionSettings = settings;

            // Create a spreadsheet document by supplying the filepath.
            // By default, AutoSave = true, Editable = true, and Type = xlsx.
            ExcelDocument = SpreadsheetDocument.Create(outputFile, SpreadsheetDocumentType.Workbook);

            // Add a WorkbookPart to the document.
            ExcelWorkbookPart          = ExcelDocument.AddWorkbookPart();
            ExcelWorkbookPart.Workbook = new Workbook();
            ExcelWorkbookPart.Workbook.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");

            // Add a WorksheetPart to the WorkbookPart.
            ExcelWorkSheetPart           = ExcelWorkbookPart.AddNewPart <WorksheetPart>();
            ExcelWorkSheetPart.Worksheet = SetWorksheetData();

            // Add Sheets to the Workbook.
            Sheets sheets = ExcelDocument.WorkbookPart.Workbook.AppendChild <Sheets>(new Sheets());

            // Append a new worksheet and associate it with the workbook.
            Sheet sheet = new Sheet()
            {
                Id = ExcelDocument.WorkbookPart.GetIdOfPart(ExcelWorkSheetPart), SheetId = 1, Name = "Exported data"
            };

            sheets.Append(sheet);

            // Get the SharedStringTablePart.
            ExcelSharedStringsTable = ExcelDocument.WorkbookPart.AddNewPart <SharedStringTablePart>();

            //Set custom styles
            WorkbookStylesPart workbookStylesPart = ExcelDocument.WorkbookPart.AddNewPart <WorkbookStylesPart>();

            workbookStylesPart.Stylesheet = GenerateStylesheet();

            ExcelStyleSheet = ExcelDocument.WorkbookPart.WorkbookStylesPart.Stylesheet;

            CreateHeader();

            // Save the new worksheet.
            ExcelWorkSheetPart.Worksheet.Save();
        }