我需要设置和删除行的背景颜色。为什么当我将样式设置为行时它不起作用 - 仍然没有行的背景颜色。我试图设置单个单元格的CellStyle属性并使用HSSFStyle。结果是一样的 - 没有背景颜色。这是代码:
XSSFCellStyle style = (XSSFCellStyle)_myBook.CreateCellStyle();
// Define cell style according to input color parameter
XSSFColor colorToFill;
switch (color)
{
default:
colorToFill = new XSSFColor(Color.Gray);
break;
}
style.SetFillBackgroundColor(colorToFill);
for (int i = From; i <= To; i++)
{
var row = GetCreateRow(i);
row.RowStyle = style;
}
P.S。文档以XSSF格式打开
答案 0 :(得分:20)
您需要做两件事:
显然,填写Excel是双色的,所以当你想要更改填充时,你必须设置一个模式,因为默认是一个没有填充的单元格,这意味着没有FillPattern。 SolidForeground是基本填充图案,这意味着您必须设置填充的前景色,而不是填充的背景色。有点反直觉,但是&#34;填充&#34;指的是&#34;单元格的背景颜色&#34;,所以你可以把它想象成&#34; SetBackgroundForegroundColor&#34; /&#34; SetBackgroundBackgroundColor&#34;
答案 1 :(得分:0)
getchar()
<块引用>
块引用 对于列标题
Dim conn As New SqlConnection("xxxxxxx")
conn.Open()
Dim a As SqlDataAdapter = New SqlDataAdapter(XXXXXX, conn)
Dim dt As DataTable = New DataTable()
a.Fill(dt)
conn.Close()
conn.Dispose()
Using fs = New FileStream("C:\123.xlsx", FileMode.Append, FileAccess.Write)
Dim workbook As IWorkbook = New XSSFWorkbook()
Dim excelSheet As ISheet = workbook.CreateSheet("Sheet1")
Dim columns As List(Of String) = New List(Of String)()
Dim styleOrange As ICellStyle = workbook.CreateCellStyle
Dim row As IRow = excelSheet.CreateRow(0)
Dim columnIndex As Integer = 0
<块引用>
Blockquote '用于记录和行以填充 excel
For Each column As Data.DataColumn In dt.Columns
columns.Add(column.ColumnName)
row.CreateCell(columnIndex).SetCellValue(column.ColumnName)
columnIndex += 1
Next