Логика для отображения превосходного фонового оттенка с использованием asp.net и EPPlus - PullRequest
1 голос
/ 17 октября 2011

У меня есть приложение asp.net, которое экспортирует данные в Excel.Мне нужно затенить ячейки в файле Excel.

Я бы хотел, чтобы в первом ряду был темно-серый фон.Второй ряд должен иметь светло-серый фон, а 3-й ряд - обычный белый.Затем петля (темно-серый, светло-серый, белый и т. Д.).

В настоящее время, используя 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 ]

2 голосов
/ 18 октября 2011

Не проверено, но должно дать вам подсказку:

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
0 голосов
/ 28 октября 2014

Если кто-то ищет 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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...