2017-09-28 12 views
1

作成した後に書式を設定したいシートの数を持つワークブックがあり、その列に基づいてヘッダー行の色を変更したいとします。たとえば、最初の9つの列を1つの色にしてから、列10を別の列にし、残りのすべてを3番目の色にする必要があります。行のルーピングとXLSXwriterの書式設定

これは私がループしていることです。これは動作の種類ですが、行0のすべてのセルは同じ色になります。最後に割り当てられた色は常に前の列を上書きします。

visitFormat = mtbook.add_format({'bg_color':'#e9ccfc'}) 
cognotesFormat = mtbook.add_format({'bg_color':'#d2eff2'}) 
filedateFormat = mtbook.add_format({'bg_color':'#8cbcff'}) 

for worksheet in mtbook.worksheets(): 
    print(worksheet) 
    # for every column 
    for i in range(len(subreportCols)): 
     # set header bgcolor based on current column (i) 
     if [i] in range(0,11): 
      useheader = visitFormat 
     elif [i] == 10: 
      useheader = cognotesFormat 
     else: 
      useheader = filedateFormat 
     # Write the value from cell (first row, column=1) back into that cell with formatting applied 
     worksheet.write(0, i, subreportCols[i], useheader) 

私はそれが別々に各列を書いていると思ったので、私はこれで混乱しています。私は何とかこの細胞を細胞で行う必要がありますか?

ありがとうございました!

答えて

1

他の人に役立つ場合に備えて、トラブルシューティングで解決しました。(の後に、すべて「」の「あなたの質問に答える」ボタンがあります)。この行で

if [i] in range(0,11): 

...私は私がやったと思ったことは私のリストにあるi番目の値を基準として、[i]を使用していましたが、私は実際にリスト全体を参照して。私はちょうど私のために交換した、そしてそれはうまくいった。