2016-01-02 1 views
1

J'utilise pour créer une exportation Excel avec un graphique de colonne Ruby on Rails bijou Axlsx (https://github.com/randym/axlsx), en utilisant le code suivant:Réglage de l'espace entre les colonnes Axlsx généré graphique à barres

p = Axlsx::Package.new(author: @current_user.username, workbook: Axlsx::Workbook.new) 
wb = p.workbook 
sheet = wb.add_worksheet(name: 'My worksheet') 
sheet.add_chart(Axlsx::Bar3DChart, start_at: 'A2', end_at: 'K28') do |chart| 
    chart.barDir = :col 
    chart.show_legend = false 
    chart.valAxis.gridlines = true 
    chart.catAxis.gridlines = false 
    chart.gapWidth = '50%' 
    chart.add_series(data: [1,2,3], labels: ['This', 'That', 'Other'], title: 'My chart') 
end 

Regarder the docs, il semble que je peux utiliser gapWidth= pour ajuster l'espace entre les barres. L'utilisation de chart.gapWidth = '50%' ne génère pas d'erreur, mais lorsque j'ouvre le fichier généré dans Excel, il me signale que le fichier est corrompu. Si je supprime cette ligne, tout fonctionne bien. Est-ce que quelqu'un peut me dire comment je peux ajuster l'espace entre les barres dans mon graphique généré?

+0

très étrange. Dans la documentation, j'ai trouvé ceci: "regex de validation pour l'écart quantité%/0 * (([0-9]) | ([1-9] [0-9]) | ([1-4] [0-9] [ 0-9]) | 500)%/", et après que je suis allé à" RegEx String Generator ", pour inverser cela .. et les résultats sont les suivants:" 500%, 0000029% ... "... J'ai essayé tous, mais aussi obtenir un fichier corrompu. = ( –

Répondre

1

Semble être parce que la valeur donnée est insérée mot pour mot dans le noeud gapWidth, bien que la valeur soit un pourcentage, il ne doit pas inclure le signe '%' dans la valeur émise.

Donc, pour votre exemple, il produira le nœud <c:gapWidth val="50%"/> au lieu de <c:gapWidth val="50"/>

meilleur solution que je pense est juste pour supprimer l'exigence pour le symbole% dans le validateur.

Vous êtes invités à utiliser mon repo clone pour l'instant qui a ce correctif. https://github.com/kstuart/axlsx