使用asp.net&amp ;;显示excel背景阴影的逻辑EPPlus

时间:2011-10-17 19:33:49

标签: asp.net vb.net excel epplus

我有一个将数据导出到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)

2 个答案:

答案 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;
    }