![](/img/trans.png)
[英]How do I set a text in clipboard using C# in order to past it into excel with different background/font color for each cell?
[英]In C#, how can I set the background color cell of exported Excel file to particular color based on some conditions?
我正在使用以下參考將數據插入 Excel。 根據下面的代碼,我想設置單元格顏色,其中也包含一些數據(如分數)
using ClosedXML.Excel.XLWorkbook;
XLWorkbook workbook;
workbook = new XLWorkbook(System.Web.Hosting.HostingEnvironment.MapPath("~/Template.xlsx"));
var worksheet = workbook.Worksheets.Worksheet(1);
foreach(var item in output)
{
var cellname = ...... // some codes to get cell name For exampple : it gets A5
worksheet.Cell(cellname).SetValue(item.Score);
// Now I need to set color for cell A5 (ie cellname) based on some condition
// item will also contain parameter Color which will have color name like below
if(item.Color == "Red")
worksheet.Cell(cellname).SetColor(Red); // I need proper code to be written in this line
else if (item.Color == "Green")
worksheet.Cell(cellname).SetColor(Green); //
// ............ some other codes .......
}
我正在使用ClosedXML ,因此我需要與此參考一起使用的代碼。 此外,item.Color 是從 DB 接收的,因此它的值可以是紅色、綠色或藍色之間的任何值,因此我需要檢查 item.Color 值並相應地設置單元格顏色。
我想你能做的最好的事情就是在 Excel 文件本身中添加條件格式。 這樣,Excel 將應用顏色,即使在您生成文件后值發生變化時也會這樣做。 這在文檔的這一部分中進行了描述:
var workbook = new XLWorkbook();
var ws = workbook.AddWorksheet("Sheet1");
ws.FirstCell().SetValue(1)
.CellBelow().SetValue(1)
.CellBelow().SetValue(2)
.CellBelow().SetValue(3)
.CellBelow().SetValue(4);
ws.RangeUsed().AddConditionalFormat().WhenBetween(2, 3)
.Fill.SetBackgroundColor(XLColor.Red);
var workbook = new XLWorkbook();
var ws = workbook.Worksheets.Add("Style Fill");
var co = 2;
var ro = 1;
ws.Cell(++ro, co + 1).Value = "BackgroundColor = Red";
ws.Cell(ro, co).Style.Fill.BackgroundColor = XLColor.Red;
ws.Cell(++ro, co + 1).Value = "PatternType = DarkTrellis; PatternColor = Orange; PatternBackgroundColor = Blue";
ws.Cell(ro, co).Style.Fill.PatternType = XLFillPatternValues.DarkTrellis;
ws.Cell(ro, co).Style.Fill.PatternColor = XLColor.Orange;
ws.Cell(ro, co).Style.Fill.PatternBackgroundColor = XLColor.Blue;
workbook.SaveAs(Styles_Fill);
一般來說,文檔看起來確實相當全面和有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.