Comment lire le contenu d'une feuille de calcul Excel à l'aide de Ruby?
Je suis en train de lire un fichier tableur Excel avec Ruby, mais il n'est pas de lire le contenu du fichier.
C'est mon script
book = Spreadsheet.open 'myexcel.xls';
sheet1 = book.worksheet 0
sheet1.each do |row|
puts row.inspect ;
puts row.format 2;
puts row[1];
exit;
end
C'est de me donner les suivants:
[DEPRECATED] By requiring 'parseexcel', 'parseexcel/parseexcel' and/or
'parseexcel/parser' you are loading a Compatibility layer which
provides a drop-in replacement for the ParseExcel library. This
code makes the reading of Spreadsheet documents less efficient and
will be removed in Spreadsheet version 1.0.0
#<Spreadsheet::Excel::Row:0xffffffdbc3e0d2 @worksheet=#<Spreadsheet::Excel::Worksheet:0xb79b8fe0> @outline_level=0 @idx=0 @hidden=false @height= @default_format= @formats= []>
#<Spreadsheet::Format:0xb79bc8ac>
nil
J'ai besoin d'obtenir le contenu réel du fichier. Ce que je fais mal?
source d'informationauteur Pavunkumar
Vous devez vous connecter pour publier un commentaire.
Il ressemble
row
dont la classe estSpreadsheet::Excel::Row
est effectivement un ExcelRange
et qu'il soit inclut Énumérable ou, au moins, expose quelques énumérable comportements,#each
par exemple.Donc vous pouvez réécrire votre script à quelque chose comme ceci:
Notez que j'ai parenthesised arguments, ce qui est généralement conseillé de ces jours, et a supprimé les points-virgules, qui ne sont pas nécessaires, sauf si vous écrivez plusieurs instructions sur une ligne (ce qui devrait que rarement - voire jamais - ne).
C'est probablement une gueule de bois d'une plus grande script, mais je vais souligner que, dans le code donné le
book
etsheet1
variables ne sont pas vraiment nécessaires, et queSpreadsheet#open
prend un bloc, de sorte qu'un plus idiomatiques version de Ruby pourrait être quelque chose comme ceci:Je ne pense pas que vous devez exiger parseexcel, juste
require 'spreadsheet'
Avez-vous lu le guideil est super facile à suivre.
Est-il une ligne d'un fichier? Si vous avez donc besoin de: