2013-12-12 19 views
5

Chỉnh sửa: Các ví dụ này tất cả đều hoạt động. Vấn đề của tôi thực sự không liên quan đến epplus và mã này cũng như câu trả lời được đánh dấu hoạt động để tạo kiểu cho các ô đã phối.EPPlus: Cách tạo kiểu cho ô được hợp nhất?

Tôi muốn có thể tạo kiểu cho ô được hợp nhất, tuy nhiên, nỗ lực tạo kiểu ô của tôi không có hiệu lực. Dưới đây là cách tôi đang sáp nhập các tế bào:

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

ở đây là làm thế nào tôi đã cố gắng để thiết lập màu nền và phông chữ trên này sáp nhập tế bào:

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

Một cách khác tôi đã cố gắng:

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

Tuy nhiên, một cách mà tôi đã cố gắng:

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

Tôi đang thiếu gì ở đây? Tôi có thể tạo kiểu cho các ô khác chưa được hợp nhất mà không gặp khó khăn, nhưng các ô đã phối của tôi sẽ không thay đổi.

+0

Chỉ cố gắng lặp qua từng ô được hợp nhất và tạo kiểu cho nó, cũng đã thử WorkSheet.Cells [1, 1, 1, 11] .... mà không thành công. – Jakotheshadows

Trả lời

11

Tôi không thể tạo lại sự cố .. Đây là ví dụ về tạo kiểu ô được hợp nhất. Xem nếu bạn có thể tìm thấy những gì bạn đã làm sai. Tất cả những gì bạn phải làm là chạy nó.

Vui lòng cho tôi biết nếu bạn có bất kỳ nghi ngờ nào.

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

Cảm ơn. Ví dụ của tôi cũng hoạt động, mã tôi đã cho thấy không được thực thi do một vấn đề không liên quan. Tôi nhầm tưởng rằng tôi đã sử dụng EPPlus không chính xác. – Jakotheshadows

+0

Điều cần biết !!! –

Các vấn đề liên quan