14
SPREADSHEETASDATA (RUBY 版 ) 版版版版版版

Spreadsheet as data(ruby版)

Embed Size (px)

Citation preview

Page 1: Spreadsheet as data(ruby版)

SPREADSHEETASDATA(RUBY版 )サブタイトル

Page 2: Spreadsheet as data(ruby版)

SPREADSHEETASDATA

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

Page 3: Spreadsheet as data(ruby版)

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

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

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

Page 4: Spreadsheet as data(ruby版)

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

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

Page 5: Spreadsheet as data(ruby版)

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

Page 6: Spreadsheet as data(ruby版)

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

book|

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

Page 7: Spreadsheet as data(ruby版)

セル

puts book.Sheet1.A2 #> Jacob

Page 8: Spreadsheet as data(ruby版)

table = book.Sheet1.A1_D7

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

テーブル

Page 9: Spreadsheet as data(ruby版)

table = book.Sheet1.A_D

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

テーブル

Page 10: Spreadsheet as data(ruby版)

シート

s = book.Sheet1s2 = book.Sheet2

Page 11: Spreadsheet as data(ruby版)

シート

s = book. 一覧表

Page 12: Spreadsheet as data(ruby版)

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

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

Page 13: Spreadsheet as data(ruby版)

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

文字列と数字

Page 14: Spreadsheet as data(ruby版)

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

空のセル