Schreiben von excel-Dateien in ruby mit roo gem
Ich bin Parsen von Excel-und Excelx-Datei mit Roo gem. Aber ich bin nicht sicher, wie Sie Sie schreiben in diese Dateien. set_value(row, column, text)
Methode nicht funktioniert.
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
Die Fehlermeldung die ich bekommen hab ist
/.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
- Könnten Sie zeigen uns Ihre vollständigen code? Sind Sie mit der Anwendung dieser Methode zu einem vorhandenen Objekt?
- Ich habe editiert oben genannte Frage und code Hinzugefügt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen " set "- Methode anstelle von "set_value" - Methode in Excelx oder OpenOffice-Objekt. Für mehr, siehe API - http://rubydoc.info/gems/roo/1.10.1/frames und ich denke roo gem ist spezialisiert auf das Lesen von excel-Inhalte als schreiben. Zum Beispiel mit der set-Methode wird nicht speichern Sie zurück in die spreadsheet-Datei. Es spart auf die Puffer, denke ich. Versuchen Sie einige andere Edelsteine für das schreiben
Keine Antworten hier eigentlich eine Antwort auf die Frage, wie dies mit Roo, also ich ' ll fügen Sie die Lösung, die ich gerade getestet in unserer app.
Roo kürzlich hinzugefügte Funktionalität für die Bearbeitung von Zellen: https://github.com/roo-rb/roo/blob/master/lib/roo/csv.rb#L42
Können Sie es verwenden, wie:
Hinweise:
nil
ist nicht in der Funktion, hat aber kein Standard, so es erforderlich ist.Können Sie den Wert einer Spalte, indem Sie eine Zeichenfolge in es.
Den code unten schreibt einer Tabellenkalkulation
können Sie die Verwendung von set-Methode