Подтвердить что ты не робот

Жирным шрифтом и курсивом, не работающим в Excel с EPPLUS

Я использую приведенный ниже код для обновления формата данных excel, здесь я хочу, чтобы заголовок был выделен жирным шрифтом и целыми данными в курсивном формате, но когда я запускаю код, все функции в нем, похоже, работают отлично, за исключением полужирных и Курсив. Код также завершает выполнение без каких-либо ошибок, но в файле excel ни одна из ячеек не имеет данных в жирном или курсивном формате.

    public void FormatExcel()
    {
        string currentDate = DateTime.Now.ToString("yyyyMMdd");
        FileInfo File = new FileInfo("G:\\Selenium\\Test66.xlsx");
        using (ExcelPackage excel = new ExcelPackage(File))
        {
            ExcelWorksheet worksheet = excel.Workbook.Worksheets[currentDate];
            int totalRows = worksheet.Dimension.End.Row;
            int totalCols = worksheet.Dimension.End.Column;
            var headerCells = worksheet.Cells[1, 1, 1, totalCols];
            var headerFont = headerCells.Style.Font;
            headerFont.Bold = true;
            headerFont.Italic = true;
            headerFont.SetFromFont(new Font("Times New Roman", 12));
            headerFont.Color.SetColor(Color.DarkBlue);
            var headerFill = headerCells.Style.Fill;
            headerFill.PatternType = ExcelFillStyle.Solid;
            headerFill.BackgroundColor.SetColor(Color.Gray);
            var dataCells = worksheet.Cells[2, 1, totalRows, totalCols];
            var dataFont = dataCells.Style.Font;
            dataFont.Italic = true;
            dataFont.SetFromFont(new Font("Times New Roman", 10));
            dataFont.Color.SetColor(Color.DarkBlue);
            var dataFill = dataCells.Style.Fill;
            dataFill.PatternType = ExcelFillStyle.Solid;
            dataFill.BackgroundColor.SetColor(Color.Silver);
            var allCells = worksheet.Cells[1, 1, totalRows, totalCols];
            allCells.AutoFitColumns();
            allCells.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
            var border = allCells.Style.Border;
            border.Top.Style = border.Left.Style = border.Bottom.Style = border.Right.Style = ExcelBorderStyle.Thin;
            excel.Save();
        }
    }
4b9b3361

Ответ 1

Проблема в том, что вы устанавливаете/перезаписываете шрифт после того, как вы установите жирный/курсив. Просто установите шрифт следующим образом:

headerFont.SetFromFont(new Font("Times New Roman", 12)); //Do this first
headerFont.Bold = true;
headerFont.Italic = true;

или вы можете немного сократить его примерно так:

headerFont.SetFromFont(new Font("Times New Roman", 12, FontStyle.Italic | FontStyle.Bold));