LoginSignup
0
0

More than 3 years have passed since last update.

Roo / Ruby on Rails Gem 日本語訳(3)

Posted at

今回実務で扱った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")

RooCSVファイルを標準ライブラリとして使用しているため、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-xlsroo-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.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0