Existe-t-il des gemmes capables d'analyser les fichiers XLS et XLSX? J'ai trouvé Spreadsheet et ParseExcel, mais ils ne comprennent pas tous les deux le format XLSX :( Des idées?
Je vous remercie.
Existe-t-il des gemmes capables d'analyser les fichiers XLS et XLSX? J'ai trouvé Spreadsheet et ParseExcel, mais ils ne comprennent pas tous les deux le format XLSX :( Des idées?
Je vous remercie.
Je viens de trouver roo , qui pourrait faire le travail - répond à mes besoins, en lisant un tableur de base.
La gemme roo fonctionne très bien pour Excel (.xls et .xlsx) et est en cours de développement.
Je suis d'accord que la syntaxe n'est pas géniale, ni rubis. Mais cela peut être facilement réalisé avec quelque chose comme:
class Spreadsheet
def initialize(file_path)
@xls = Roo::Spreadsheet.open(file_path)
end
def each_sheet
@xls.sheets.each do |sheet|
@xls.default_sheet = sheet
yield sheet
end
end
def each_row
0.upto(@xls.last_row) do |index|
yield @xls.row(index)
end
end
def each_column
0.upto(@xls.last_column) do |index|
yield @xls.column(index)
end
end
end
Je suis en utilisant le ruisseau qui utilise nokogiri. Il est rapide. Utilisé 8,3 secondes sur un 21x11250 xlsx tableau sur mon Macbook Air. L'ai eu à travailler sur ruby 1.9.3+. Le format de sortie pour chaque ligne est un hachage de ligne et de colonne nom pour le contenu d'une cellule: {"A1"=>"une cellule", "B1"=>"une autre cellule"} Le hachage ne donne aucune garantie que les clés seront à l'origine, l'ordre des colonnes. https://github.com/pythonicrubyist/creek
dullard est un autre grand, qui utilise des nokogiri. Il est super rapide. Utilisé en 6,7 secondes sur un 21x11250 xlsx tableau sur mon Macbook Air. L'ai eu à travailler sur ruby 2.0.0+. Le format de sortie pour chaque ligne est un tableau: ["une cellule", "une autre cellule"] https://github.com/thirtyseven/dullard
simple_xlsx_reader qui a été mentionné, c'est grand, un peu lent. Utilisé 91 secondes sur un 21x11250 xlsx tableau sur mon Macbook Air. L'ai eu à travailler sur ruby 1.9.3+. Le format de sortie pour chaque ligne est un tableau: ["une cellule", "une autre cellule"] https://github.com/woahdae/simple_xlsx_reader
Un autre élément intéressant est oxcelix. Il utilise du bœuf analyseur SAX qui soi-disant plus rapide que les deux nokogiri DOM et SAX parser. Il est censé sorties d'une Matrice. Je ne pouvais pas le faire fonctionner. Aussi, il y avait quelques problèmes de dépendance avec rubyzip. Ne le recommanderais pas.
En conclusion, si vous utilisez une version de ruby inférieur à la version 2.0.0, l'utilisation du ruisseau. Si à l'aide de ruby 2.0.0+, utilisez dullard parce que c'est plus rapide et conserve la colonne du tableau de l'ordre.
Si vous êtes à la recherche pour les bibliothèques plus modernes, jetez un oeil à la feuille de calcul: http://spreadsheet.rubyforge.org/GUIDE_txt.html. Je ne peux pas dire si il supporte les fichiers XLSX, mais en considérant qu'il est activement développé, j'imagine qu'il n' (je ne suis pas sur Windows, ou avec le Bureau, donc je ne peux pas tester).
À ce point, il ressemble à roo est une bonne option. Il prend en charge XLSX, permet de (certains) d'itération en utilisant simplement times
avec accès à la cellule. Je l'avoue, c'est pas assez.
Aussi, RubyXL pouvez maintenant vous donner une sorte d'itération à l'aide de leur extract_data
méthode, qui vous donne un tableau 2d de données, qui peuvent facilement être itéré.
Alternativement, si vous êtes en essayant de travailler avec des fichiers XLSX sur Windows, vous pouvez utiliser Ruby Win32OLE bibliothèque qui permet de faire l'interface avec les objets OLE, comme ceux fournis par Word et Excel. Avec elle, vous pouvez choisir de ne pas afficher Excel, chargez votre fichier XLSX, et d'y accéder à travers elle. Je ne sais pas si il supporte l'itération, cependant, je ne pense pas que ce serait trop dur à construire autour de la fourniture des méthodes, comme c'est la pleine Microsoft OLE de l'API pour Excel. Voici la documentation: http://support.microsoft.com/kb/222101 Voici la perle rare: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/win32ole/rdoc/WIN32OLE.html
Là encore, les options ne regarde pas beaucoup mieux, mais il n'y a pas grand chose d'autre là-bas, j'en ai peur. il est difficile d'analyser un format de fichier qui est une boîte noire. Et ces quelques personnes qui ont réussi à briser il ne l'a pas fait que de manière visible. Google Docs est à code source fermé, et LibreOffice est des milliers de lignes de harry C++.
La gem rubyXL analyse magnifiquement les fichiers XLSX.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.