Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SpreadSheetAsData(Ruby版)の説明
Search
まりも
September 16, 2024
Programming
31
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SpreadSheetAsData(Ruby版)の説明
GitHubに上げたライブラリSpreadSheetAsDataの説明です。
https://github.com/HrmsTrsmgs/SpreadsheetAsData
まりも
September 16, 2024
More Decks by まりも
See All by まりも
オブジェクトモデルと関係モデルの設計
hrmstrsmgs
0
43
メンタルモデルから見るオブジェクト設計
hrmstrsmgs
0
350
技術的負債
hrmstrsmgs
1
370
よい設計のプログラムを作るには
hrmstrsmgs
0
120
歴史から理解するJavaScript
hrmstrsmgs
0
96
論理的な考え方
hrmstrsmgs
0
100
論理的な話し合いはなぜ必要か
hrmstrsmgs
0
69
腕のある技術者はなぜ
hrmstrsmgs
0
140
疑似乱数の生成
hrmstrsmgs
0
68
Other Decks in Programming
See All in Programming
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
8
700
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
290
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
230
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
140
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
830
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
Performance Engineering for Everyone
elenatanasoiu
0
250
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
250
ランチタイムLT会3周年!ランチタイムLT会を3年間続けられたお話
y0hgi
1
130
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
240
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
230
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
It's Worth the Effort
3n
188
29k
Making the Leap to Tech Lead
cromwellryan
135
10k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Leo the Paperboy
mayatellez
8
1.9k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
410
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
220
Transcript
SPREADSHEETASDATA (RUBY版) サブタイトル
SPREADSHEETASDATA • 自作ライブラリ • オープンソースで公開 • Excelの読み書き • 理想の設計の研鑽のため •
Ruby版とC#版 • 今日はRuby版の紹介です GitHub.png
よくある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_name end テーブル
table = book.Sheet1.A_D #平均年齢 puts table. all. map{|student| student.age }.
inject(0){|total, age| total += age } / table.all.size テーブル
シート s = book.Sheet1 s2 = book.Sheet2
シート s = book.一覧表
s = book.Sheet1 puts s.A2 #> Jacob puts s['A2'] #>
Jacob puts s[:A2] #> Jacob 一つのことをたくさんのやり方で
puts s.A2 + ' ' + s.B2 #> Jacob Smith
puts s.C2 + s.C3 + s.C4 #> 40 文字列と数字
p s.E1 #>{blank} p s.E1 + ' ' #> ""
p s.E1+ 0 #> 0 空のセル