今回実務で扱ったRubyonRailのGemRoo
についてまとめました。
ソースコード: https://github.com/roo-rb/roo
前回の投稿の続きです
→Roo / Ruby on Rails Gem 日本語訳(1)
→Roo / Ruby on Rails Gem 日本語訳(2)
投稿動機
→実務で扱ったGemを復習する
→Githubなどのソースコードにビビらないようになりたい
→将来実務で英語を使いたいので、そのポートフォリオの一環として作成したい
また、最後にも記載しますが著作権に関して疎いので、この記事が著作権違反にあたらないと認識して投稿しています。
なので、著作権を侵害するつもりもありませんし、もし著作権違反になるようであればすぐにこの投稿を削除します。
I will mention at the end, I am not familiar with copyright, so I am posting this article recognizing that it does not violate copyright.
So I don't intend to infringe copyright, and if it does, I'll delete this post immediately.
Roo
OpenOffice / LibreOffice
Roo::OpenOffice
は暗号化されたOpenOfficeのスプレッドシートをサポートしています。
# 暗号化されたOpenOfficeのスプレットシートをロードします。
ods = Roo::OpenOffice.new("myspreadsheet.ods", password: "password")
Roo::OpenOffice
は下記のタイプにアクセスできます。
celltype
, comments
, font information
, formulas
, labels
ods.celltype
# => :percentage
ods.comment(1,1, ods.sheets[-1])
ods.font(1,1).italic?
# => false
ods.formula('A', 2)
CSV
# CSVファイルをロード
csv = Roo::CSV.new("mycsv.csv")
Roo
はCSV
ファイルを標準ライブラリとして使用しているため、CSV
で使われているライブラリでそのまま解析できます。
csv_options key
を使用してオプションを渡します。
For instance, you can load tab-delimited files (.tsv), and you can use a particular encoding when opening the file.
# CSVをタブで区切ってロードします。
csv = Roo::CSV.new("mytsv.tsv", csv_options: {col_sep: "\t"})
# エンコーディングを使用してCSVをロードします。
csv = Roo::CSV.new("mycsv.csv", csv_options: {encoding: Encoding::ISO_8859_1})
もちろん、Roo::Spreadsheet
を用いてCSV
ファイルを開けます。
(CSV
ファイルとExcel
ファイルを両方使うならRoo::Spreadsheet
の方が便利です)
# スプレッドシートを`path`で開く
# Roo figures out the right parser based on file extension
spreadsheet = Roo::Spreadsheet.open(csv_or_xlsx_file)
# csvファイルを`BOM`で自動で並び替えて取得します。
# Excel経由で取得したCSVファイルには通常、ファイルの先頭に`BOM`マークがつきます。
spreadsheet = Roo::Spreadsheet.open("mycsv.csv", { csv_options: { encoding: 'bom|utf-8' } })
Roo 1.13.x
からアップデート
もし.xls
やグーグルスプレッドシート
を扱うのであれば、roo-xls
やroo-google
をインストールして使いましょう!
Roo
のメソッドは1.13.xから2.0.0一貫して繋がっていますが、チェンジログをみていただいた方がよりRoo
を理解できます。
Roo's public methods have stayed relatively consistent between 1.13.x and 2.0.0, but please check the Changelog to better understand the changes made since 1.13.x.
前回の投稿
→Roo / Ruby on Rails Gem 日本語訳(1)
→Roo / Ruby on Rails Gem 日本語訳(2)
最後に
著作権に関して疎いので、この記事が著作権違反にあたらないと認識して投稿しています。
なので、著作権を侵害するつもりもありませんし、もし著作権違反になるようであればすぐにこの投稿を削除します。
I am not familiar with copyright, so I am posting this article recognizing that it does not violate copyright.
So I don't intend to infringe copyright, and if it does, I'll delete this post immediately.