Spreadsheet as data(ruby版)

Preview:

Citation preview

SPREADSHEETASDATA(RUBY版 )サブタイトル

SPREADSHEETASDATA

• 自作ライブラリ• オープンソースで公開• Excelの読み書き• 理想の設計の研鑽のため• Ruby版と C#版• 今日は Ruby版の紹介です

よくある EXCEL操作ライブラリの問題点Excelのオートメーションの利用

裏で Excelを立ち上げている重い

Excelのバージョンの影響マクロはもともと手作業の自動化用

よくある EXCEL操作ライブラリの問題点APIの設計

Excel VBAの呪縛20年以上前の設計使える機能が多すぎる

こんなライブラリが欲しいExcelのデータを利用するライブラリが簡単に書ける直観的で使いやすい API最近の RDBやXML読み込みライブラリにそん色ない

ファイルオープンWorkBook.open(‘./Book1.xlsx’) do |

book|

#bookを扱うコードをここに記述end

セル

puts book.Sheet1.A2 #> Jacob

table = book.Sheet1.A1_D7

# 氏名の書き出しtable.where(good_language: 'Ruby').each do |student| puts student.first_name + ' ' + student.last_nameend

テーブル

table = book.Sheet1.A_D

# 平均年齢 puts table. all. map{|student| student.age }. inject(0){|total, age| total += age } / table.all.size

テーブル

シート

s = book.Sheet1s2 = book.Sheet2

シート

s = book. 一覧表

s = book.Sheet1puts s.A2 #> Jacobputs s['A2'] #> Jacobputs s[:A2] #> Jacob

一つのことをたくさんのやり方で

puts s.A2 + ' ' + s.B2 #> Jacob Smithputs s.C2 + s.C3 + s.C4 #> 40

文字列と数字

p s.E1 #>{blank}p s.E1 + ' ' #> ""p w.E1 + 0 #> 0

空のセル