2016-07-14 7 views
2

Ich benutze axlsx_rails gem, um in .xlsx-Datei zu schreiben. Ich habe mehrere Spalten in einer Tabelle basierend auf Formularfeldern. Es kann variieren.axlsx_rails gem: Spaltenbreite Ausgabe

Ich möchte die Spaltenbreite für alle Spalten basierend auf verfügbaren Daten festlegen.

Ich habe verwendet:

col_widths= [10,20,30,40,50] 
p = Axlsx::Package.new 
p.use_autowidth = true 
wb = p.workbook 
wb.add_worksheet(:name => 'try') do |sheet| 
sheet.add_row ["hi","hello","how","are","you"] 
sheet.column_widths col_widths ##this column widths method doesn't take an array. 

Ist es möglich, eine Anordnung zu column_widths Verfahren oder jede andere Art und Weise passieren col_widths Array-Werte zu konvertieren, so dass wir es column_widths Methode übergeben kann?

Vielen Dank.

Antwort

3

The method nimmt eine Liste von Spaltenbreiten, und kein Array.

Sie können die splat operator verwenden, um Ihr Array in eine Liste zu konvertieren. Fügen Sie einfach einen * Zeichen hinzu:

col_widths= [10,20,30,40,50] 
p = Axlsx::Package.new 
p.use_autowidth = true 
wb = p.workbook 
wb.add_worksheet(:name => 'try') do |sheet| 
sheet.add_row ["hi","hello","how","are","you"] 
sheet.column_widths *col_widths ## Here I have used the splat operator