L'écriture de fichiers excel en ruby à l'aide de roo gem
Je suis d'analyse Excel et Excelx fichier à l'aide de Roo gem. Mais je ne suis pas sûr de savoir comment écrire dans ces fichiers. set_value(row, column, text)
méthode ne fonctionne pas.
Code
@oo = Excelx.new('tes.xlsx')
@oo.default_sheet = @oo.sheets.first
def return_column
keywords = ["website", "url"]
keywords.each do |keyword|
1.upto(@oo.last_column) do |n|
data = @oo.cell(1, n)
return n if data.downcase=~/#{keyword}/i
end
end
end
def return_rows
n = return_n
2.upto(@oo.last_row) do |row|
data = @oo.cell(row, n)
stack << data
end
end
def appender
@oo.set_value(1,11, "hey")
end
appender
Le Message d'Erreur que j'obtiens est
/.rvm/gems/ruby-1.8.7-p352/gems/roo-1.10.1/lib/roo/generic_spreadsheet.rb:441:in `method_missing': private method `set_value' called for #<Excelx:0x101221f08> (NoMethodError)
from /Users/bhushan/.rvm/gems/ruby-1.8.7-p352/gems/roo-1.10.1/lib/roo/excelx.rb:168:in `method_missing'
from parser.rb:32:in `appender'
from parser.rb:35
Pourrais-tu nous montrer ton code complet? Êtes-vous en appliquant cette méthode à un objet existant?
J'ai édité question ci-dessus et ajouté du code.
J'ai édité question ci-dessus et ajouté du code.
OriginalL'auteur Bhushan Lodha | 2011-12-13
Vous devez vous connecter pour publier un commentaire.
Essayer 'set' méthode à la place de "set_value' méthode dans Excelx ou OpenOffice objet. De plus, référez-vous API http://rubydoc.info/gems/roo/1.10.1/frames et je pense que roo gem se spécialise dans la lecture excel contenu qu'à l'écrit. Par exemple à l'aide de la méthode de jeu ne sera pas enregistrer le fichier de feuille de calcul. Il enregistre sur le tampon, je pense. Essayez quelques autres pierres précieuses pour la rédaction de
OriginalL'auteur hariharan kumar
Pas de réponses ici, en fait de répondre à la question de comment faire cela avec Roo, donc je vais ajouter la solution que je viens de tester dans notre application.
Roo récemment ajouté des fonctionnalités pour l'édition de cellules: https://github.com/roo-rb/roo/blob/master/lib/roo/csv.rb#L42
Vous pouvez l'utiliser comme tel:
Notes:
nil
n'est pas utilisé dans la fonction, mais n'a pas de défaut, de sorte qu'il est nécessaire.OriginalL'auteur Ryan
Vous pouvez définir la valeur d'une colonne en poussant une chaîne de caractères.
Le code ci-dessous écrit sur une feuille de calcul
Kishore, je ne pense pas que vous pouvez écrire de nouveau à la même xls que vous voulez ouvrir. Je suggère la création d'un nouveau fichier, même si c'est juste une copie de l'original.
Oh merci, je n'ai approché la suggestion, qui vous a donné déjà ce qui implique beaucoup de codage.
OriginalL'auteur Aaron Henderson
vous pouvez utiliser la méthode de jeu
OriginalL'auteur Mark