2015-07-11 3 views
10

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

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

ответ

13

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

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)); 
+0

Спасибо Эрни за ценный ответ. – Ash1994

Смежные вопросы