2013-12-12 5 views
5

편집 :이 예제는 모두 작동해야합니다. 내 문제는 실제로 epplus와 관련이 없으며이 코드뿐만 아니라 표시된 대답은 병합 된 셀의 스타일을 지정하는 데 유용합니다.EPPlus : 병합 된 셀의 스타일을 지정하는 방법은 무엇입니까?

병합 된 셀을 스타일 할 수 있기를 원하지만 스타일을 적용하려는 시도가 효과가 없습니다.

WorkSheet.Cells["A1:K1"].Style.Fill.PatternType = ExcelFillStyle.Solid; 
WorkSheet.Cells["A1:K1"].Style.Fill.BackgroundColor.SetColor(Color.Black); 
WorkSheet.Cells["A1:K1"].Style.Font.Color.SetColor(Color.Red); 

내가 시도하는 또 다른 방법 :

다음
WorkSheet.Cells["A1:K1"].Merge = true; 

나는이 병합 된 셀의 배경 및 글꼴 색상을 설정하기 위해 시도하는 방법입니다 : 여기에 내가 셀을 병합하고 어떻게 내가 시도

WorkSheet.Cells["A1"].Style.Fill.PatternType = ExcelFillStyle.Solid; 
WorkSheet.Cells["A1"].Style.Fill.BackgroundColor.SetColor(Color.Black); 
WorkSheet.Cells["A1"].Style.Font.Color.SetColor(Color.Red); 

또 다른 방법 :

WorkSheet.Cells[1, 1].Style.Fill.PatternType = ExcelFillStyle.Solid; 
WorkSheet.Cells[1, 1].Style.Fill.BackgroundColor.SetColor(Color.Black); 
WorkSheet.Cells[1, 1].Style.Font.Color.SetColor(Color.Red); 

나는 무엇을 여기에서 놓치고 있냐? 병합되지 않은 다른 셀의 스타일을 고칠 수는 있지만 병합 된 셀은 변경되지 않습니다.

+0

합병되고 스타일을 지정하는 각 셀을 반복하면서 WorkSheet.Cells [1, 1, 1, 11] ....을 시도했지만 성공하지 못했습니다. – Jakotheshadows

답변

11

문제점을 재현 할 수 없습니다. 다음은 병합 된 셀 스타일의 예입니다. 당신이 잘못한 것을 발견 할 수 있는지보십시오. 당신이해야 할 일은 그것을 실행하는 것뿐입니다.

의심되는 점이 있으면 알려주십시오.

var stream = new MemoryStream(); 

// print header 
using (var package = new ExcelPackage(stream)) 
{ 
    // add a new worksheet to the empty workbook 
    var worksheet = package.Workbook.Worksheets.Add("testsheet"); 
    for(var i = 0; i < 10; i++) 
     worksheet.Cells[i + 1, 1].Value = i.ToString(); 

    worksheet.Cells["A1:A3"].Merge = true; 
    worksheet.Cells["A1:A3"].Style.VerticalAlignment = ExcelVerticalAlignment.Top; 
    worksheet.Cells["A1:A3"].Style.Border.Top.Style = ExcelBorderStyle.Thin; 
    worksheet.Cells["A1:A3"].Style.Border.Left.Style = ExcelBorderStyle.Thin; 
    worksheet.Cells["A1:A3"].Style.Border.Right.Style = ExcelBorderStyle.Thin; 
    worksheet.Cells["A1:A3"].Style.Border.Bottom.Style = ExcelBorderStyle.Thin; 
    worksheet.Cells["A1:A3"].Style.Fill.PatternType = ExcelFillStyle.Solid; 
    worksheet.Cells["A1:A3"].Style.Fill.BackgroundColor.SetColor(System.Drawing.ColorTranslator.FromHtml("#f0f3f5")); 

    package.Save(); 
} 

stream.Seek(0, SeekOrigin.Begin); 

using (Stream file = File.Open("sample.xlsx", FileMode.Create)) 
{ 
    var buffer = new byte[8 * 1024]; 
    int len; 
    while ((len = stream.Read(buffer, 0, buffer.Length)) > 0) 
     file.Write(buffer, 0, len); 
} 
+0

감사합니다. 내 예제도 작동한다. 내가 보여준 코드는 관련이없는 문제로 인해 실행되지 않았다. 실수로 EPPlus를 잘못 사용하고 있다고 가정했습니다. – Jakotheshadows

+0

알아두면 좋은 정보 !!! –