2017-11-17 3 views
0

Ist es möglich, sowohl eine Zeile als auch eine Spalte zu formatieren?Axlsx Formatierung

Zum Beispiel mache ich eine Schleife, die den Index Stil Reihen unterschiedliche Farben verwendet, basierend auf, ob es gerade oder ungerade ist, aber ich möchte auch eine Spalte, um Stil, die Prozentsätze zu verwenden, die hat: num_fmt => 9

auch, warum, wenn ich die Nummer vorstelle, wie so etwas wie 1.2 macht das Ende es zu 120% Veränderung auf, alles, was ich will, ist, dass Daten wie 1,2% aussehen

@people.each_with_index | person, index | 
if index.odd? 
sheet.add_row [person['name'], person['rate']] 
else 
sheet.add_row [person['name'],person['rate']], :style => even_row 
end 
end 

(mein sogar rudern Stil an gesetzt die Oberseite meines Codes)

Antwort

1

Ich fand das heraus, Sie müssen d o stellen Sie Ihren Stil etwas mit wie

percent = s.add_style(:num_fmt => 9) 
even_row_percent = s.add_style(:bg_color => 'blue', :fg_color => 'white', :b => false, :format_code => 0%) 
even_row = s.add_style(:bg_color => 'blue', :fg_color =>'white', :b => false) 

dann nur in der Schleife ein jeweils mit dem Index verwenden und dann wie eine if-Anweisung verwendet

if index.odd 
sheet.add_row[ 
item[:value], 
item[:value_percent]], :style => [nil, percent] 
else 
sheet.add_row[ 
item[:value], 
item[:value]], :style => [even_row, even_row_percent] 
end