如何在.net核心项目中用excel给数据网格的单元格着色

wgmfuz8q  于 2023-08-08  发布在  .NET
关注(0)|答案(2)|浏览(107)

我的.net核心项目中有一个datatable。我想根据内容给某个栏目上色。我创建了datatable,然后解析了数据。

DataTable dt = new();     
dt.Columns.Add("Status");
dt.Columns.Add("Base");
dt.Columns.Add("First Date");
dt.Columns.Add("Second Date");
dt.Columns.Add("Failure Mode");

dataAll.ForEach(row =>
{
    dt.Rows.Add(
        row.status,
        row.partBase,
        row.pcaDate,
        row.icaDate,
        row.failureMode
    );
});

字符串
我想更改状态列的颜色。例如,如果状态等于R,则将此单元格着色为红色。如何给数据表单元格着色。这是我用Excel导出的方法;

using XLWorkbook wb = new();
        // create data table
        DataTable dt = MapDataToExcel(response.Result.ToList());

        // add as worksheet
        wb.Worksheets.Add(dt, "Rapor");          
       
        // save it as a file then stream it to the user
        using MemoryStream stream = new MemoryStream();
        wb.SaveAs(stream);

        return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Rapor.xlsx");

ct2axkht

ct2axkht1#

我假设状态字段是一个布尔值。您可以在代码片段中包含此方法,并根据自己的定义更改条件。

private void DataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    bool status = Convert.ToBoolean(e.Row.Cells["Status"].Value);
    if (status)
    {
       e.CellStyle.BackColor = Color.Green;
    }
    else
    {
       e.CellStyle.BackColor = Color.Red;
    }
}

字符串

ru9i0ody

ru9i0ody2#

for (int i = 2; i < dataCount; i++)
            {
               

                foreach (var item in wb.Worksheets)
                {   
                    var objPage2 = item.Cell(i, 1).GetString();
                    if (objPage2 == "R") { item.Cell(i, 1).Style.Fill.BackgroundColor = XLColor.Red; }
                    if (objPage2 == "G") { item.Cell(i, 1).Style.Fill.BackgroundColor = XLColor.Green; }
                    if (objPage2 == "Y") { item.Cell(i, 1).Style.Fill.BackgroundColor = XLColor.Yellow; }

                }
            }

字符串
检查特定列的值并根据值为它们着色

相关问题