1

我有一个将数据导出到 excel 的 asp.net 应用程序。我需要对 excel 文件中的单元格进行着色。

我希望第一行有深灰色背景。第二行为浅灰色背景,第三行为普通白色。然后循环(深灰色、浅灰色、白色等)。

目前,使用 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 列)

4

2 回答 2

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
于 2011-10-17T20:26:48.657 回答
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;
    }
于 2014-10-27T22:41:50.207 回答