2011-10-17 16 views
1

私はExcelにデータをエクスポートしているasp.netアプリケーションがあります。 Excelファイル内のセルを陰影付けする必要があります。asp.net&EPPlusを使用して表示するロジックは、背景シェードをExcelに

私は第1行に暗いグレーの背景があるようにしたいと思います。 2番目の行は明るいグレーバックグラウンドを持ち、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)希望

+0

3つの塗りつぶしの色を配列に入れ、** Mod **演算子を使用してrowIndex変数から配列インデックスを計算します。 –

+0

面白い..私はそれを試みたが、動作するロジックを得ることができなかった。あなたは擬似コードブロックを払拭できますか? – DotNetRookie

+1

申し訳ありません - VB.NETの人ではありません:下のTimのソリューションはかなり同じです。 –

答えて

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 
0

I.

があったように、誰もが、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; 
    } 
関連する問題