繁体   English   中英

如何在DataTable C#中设置DataRow的背景色

[英]How to set background color of DataRow in DataTable c#

我正在将DataTable导出到Excel。 因此,在导出之前,我添加了新行,我想为此行设置一些背景色。 这是我的代码...

                    DataRow newRow = datatable3.NewRow();
                    for (int i = 0; i < datatable3.Columns.Count; i++)
                    {
                        newRow[i] = "Hello";
                    }

                //newRow.BackGroundColor = "Red" - Something like this.

在这里,我将DataTable导出到Excel。

                  using (XLWorkbook wb = new XLWorkbook())
                    {
                        foreach (DataTable dt in ds.Tables)
                        {
                            //Add DataTable as Worksheet.
                            wb.Worksheets.Add(dt, dt.TableName.ToString());
                        }
                        using (MemoryStream MyMemoryStream = new MemoryStream())
                        {
                            wb.SaveAs(MyMemoryStream);
                            return File(MyMemoryStream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", ext);
                        }
                    }

像这样显示。

在此处输入图片说明

如何更改行背景色?

看来您正在使用ClosedXMS dll。 查看他们有关使用颜色的文档

@Gopal

只是针对@Conor的答案而已! 您可以尝试-

//对于特定的数据表,在多个列表中

var ws = wb.Worksheets.Add(dt, dt.TableName.ToString());
for (int j = 1; j <= ds.Tables[3].Columns.Count; j++) //This is for fourth datatable/sheet
{
ws.Cell(2, j).Style.Fill.BackgroundColor = XLColor.FromArgb(255, 255, 0); //All columns of second row
}

XlColor.FromArgb(// RGB颜色代码); 此静态方法使您可以自由指定RGB颜色代码,您可以通过所使用的excel模板轻松获得该颜色代码。

您可以使用在Excel.Range上找到的Interior属性。

// The following just shows how the variables are created (based on creating a new Excel Spreadsheet)
var xlApp = new Excel.Application();
var xlWorkbook = xlApp.Workbooks.Add(Missing.Value);
var xlWorksheet = xlWorkbook.Worksheets[1];
// Now the actual code needed
var xlRange = xlWorksheet.UsedRange;
// This select the entire top row, but you can select your own range based on your data
var titleRange = xlRange.Range["A1", string.Concat(((char)(xlRange.Columns.Count + 64)), 1)];
// The following line sets the fill colour
titleRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM