我有一个将数据导出到excel的asp.net应用程序。我需要遮盖excel文件中的单元格。
我希望第一排有一个黑暗的背景。第二行有一个浅灰色背景,第三行是常规白色。然后循环(darkgray,lightgray,white等)。
目前,使用EPPlus,这是我的代码:
Dim colIndex As Integer = 1
Dim rowIndex As Integer = 1
Dim xlRow = excelWorksheet.Row(rowIndex)
Dim xlCell = excelWorksheet.Cells(rowIndex, colIndex)
Dim CellFill = xlCell.Style.Fill
Dim RowFill = xlRow.Style.Fill
CellFill.PatternType = ExcelFillStyle.Solid
RowFill.PatternType = ExcelFillStyle.Solid
RowFill.BackgroundColor.SetColor(Drawing.Color.DarkGray)
如果我要为每个单元格编码,这将是非常漫长和复杂的。我怎样才能把它变成一个循环?理想情况下,我想要一系列列(例如列A:列E)
答案 0 :(得分:2)
未经测试但应该给你提供线索:
For row = workSheet.Dimension.Start.Row To workSheet.Dimension.End.Row
Dim pos = row Mod 3
Dim rowRange = workSheet.Row(row)
Dim RowFill = rowRange.Style.Fill
RowFill.PatternType = ExcelFillStyle.Solid
Select Case pos
Case 0
RowFill.BackgroundColor.SetColor(Drawing.Color.LightGray)
Case 1
RowFill.BackgroundColor.SetColor(Drawing.Color.DarkGray)
Case 2
RowFill.BackgroundColor.SetColor(Drawing.Color.White)
End Select
Next
答案 1 :(得分:0)
如果有人在寻找C#,就像我一样。
for (int row = worksheet.Dimension.Start.Row; row <= worksheet.Dimension.End.Row; row++)
{
int pos = row % 3;
ExcelRow rowRange = worksheet.Row(row);
ExcelFill RowFill = rowRange.Style.Fill;
RowFill.PatternType = ExcelFillStyle.Solid;
switch (pos)
{
case 0:
RowFill.BackgroundColor.SetColor(System.Drawing.Color.LightGray);
break;
case 1:
RowFill.BackgroundColor.SetColor(System.Drawing.Color.DarkGray);
break;
case 2:
RowFill.BackgroundColor.SetColor(System.Drawing.Color.White);
break;
}