usar una tabla pasar leer hoja graficos graficar exportar desde datos con como excel formatting styles spreadsheet axlsx

una - leer tabla de excel en matlab



Cómo escribir una matriz en Excel con diferentes estilos por columna usando Axlsx (1)

Así es como lo hago.

Primero, genero mis estilos de esta manera:

p = Axlsx::Package.new wb = p.workbook # styles style_1 = wb.styles.add_style bg_color: ''3492ff'', font_name: ''Calibri'' style_2 = wb.styles.add_style bg_color: ''ff8800'', font_name: ''Arial''

Después de leer mis estilos, creo una hoja de trabajo:

wb.add_worksheet(name: ''Example'') do |sheet|

Después de que se haya creado la hoja de trabajo, puedo agregar datos llamando a add_row . Y como último argumento, paso una variedad de estilos. Ejemplo:

sheet.add_row [''Column 1'', ''Column2''], style: [style_1, style_2]

De esta manera, puedo estilizar la celda de cada columna. En caso de que no desee aplicar style_2, simplemente escriba [style_1, nil] .

Aquí está el código concatenado

p = Axlsx::Package.new wb = p.workbook # styles style_1 = wb.styles.add_style bg_color: ''3492ff'', font_name: ''Calibri'' style_2 = wb.styles.add_style bg_color: ''ff8800'', font_name: ''Arial'' # worksheet wb.add_worksheet(name: ''Example'') do |sheet| sheet.add_row [''Column 1'', ''Column2''], style: [style_1, style_2] end end

Me gustaría poder utilizar la gema Axlsx para escribir una hoja de cálculo de Excel con diferentes estilos aplicados a diferentes columnas.

Estoy escribiendo un Array of Hashes en una fila completa a la vez y, como resultado, parece que no puedo formatear las columnas de manera diferente según sea necesario.

No sé cómo decir: "para las columnas AD, use el estilo predeterminado, sin embargo, para las columnas E y F, use la alineación central horizontal".

require ''axlsx'' p = Axlsx::Package.new wb = p.workbook # Default Style for all cells standard_text = wb.styles.add_style( :alignment => {:vertical=>:center, :wrap_text=>true} ) # Custom styling to be applied to cells in rows E and F only custom_text = wb.styles.add_style( :alignment => {:horizontal=>:center} ) assessment_technology_hashes.each do |rows| sheet.add_row(rows.values, :height => 35, :style => standard_text) end

Aquí está la estructura de la matriz de hash para las rows que se está escribiendo con add_row :

{:vendor_name=>"vendor", :link=>"Link/n", :importance=>"Low Priority", :score=>"5", :overall_score=>"4.5", :match=>"Yes", :access=>"Anywhere", :title=>"Full Title"} {:vendor_name=>"vendor2", :link=>"Link2/n", :importance=>"Medium Priority", :score=>"7", :overall_score=>"8.5", :match=>"Yes", :access=>"Typical", :title=>"Full Title"} ... ...

En este escenario, ¿es el enfoque correcto para escribir todos los datos con el formato primario texto_estimado que se desea y luego aplicar el formato personalizado DESPUÉS de que se hayan escrito todos los datos?

Pensé que esto podría funcionar en el ciclo solo para escribir filas cuando la condición es verdadera, pero siempre devuelve falso:

sheet.add_row(rows.values, :height => 35, :style => custom_text) if rows.key?(:overall_score) || rows.key?(:match)

¿Puede alguien señalarme en la dirección correcta para hacer esto?