SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Excelが嫌でRubyを始めたけど
Excelから離れられない話
Osaka RubyKaigi 01
つじたさとみ@satomicchy
8年前の出来事
➤ 「経理屋がRailsを始めた理由」より
そしていま、2018年
➤ Railsアプリから官庁への提出資料を出力
Excelふたたび!
そしていま、2018年
そしていま、2018年
大人になったのでちゃんと向き合いました
Excelと向き合う
➤ やりたいこと
- xlsxテンプレの準備�:�官庁提供ファイル
- Railsアプリでxlsxへのデータ差し込み
- Railsアプリからxlsxダウンロード
Excelと向き合う
➤ xlsxへのデータ差し込み
gem spreadsheetx (by craigulliott)
https://github.com/craigulliott/spreadsheetx
7年前から更新なし (T T)
fork してみる
そもそもxlsxてどうなってるの?
Excelと向き合う
➤ Excel = xlsx = xmlファイルをzipしたもの
Excelと向き合う
➤ xlsxと向き合あった手順
- ファイル名と同じフォルダを作って、その中でxlsxをunzip
- gem nokogiriでタグの改行&インデント整形
(参考��https://goo.gl/a6FzcG)
- git管理にする
- あとは、git grepしたり、ちょっと変更した他のxmlを全上書き
してgit diff見たり、ぐぐったり
・standaloneじゃないxmlは、nokogiriで整形できなかった
・LibreOfficeで保存したxlsxは、一部のxmlのstandaloneが変わる
Excelと向き合う
➤ xlsxをunzipした例
ざっくり構成
xlsxを構成する
全体の情報
個々のスタイル情報
(部分的にシート毎)
個々の文字情報
(ほぼシート毎)
+
+
*.xlsx/
├ [Content_Types].xml
├ _rels/
├ docProps/
├ app.xml
└ core.xml
└ xl/
├ _rels/
├ worksheets/
└ sheet1.xml
├ sharedStrings.xml
├ styles.xml
└ workbook.xml
Excelと向き合う
➤ セルに差し込み → セルのデータと種類を変更
xl/worksheets/sheet1.xml 抜粋
<row r="8" s="1" customFormat="true" ht="25.5" hidden=“false"
customHeight="true" outlineLevel="0" collapsed="false">
<c r="A8" s="27" t="n">
<v>1</v>
</c>
</row>
列情報
データ種類セル番号
セルのデータ
Excelと向き合う
➤ テキストボックスに差し込み・・・実装中
xl/drawings/drawing1.xml 抜粋
<xdr:twoCellAnchor editAs="oneCell">
<xdr:from>
・・・
</xdr:from>
<xdr:to>
・・・
</xdr:to>
<xdr:sp macro="" textlink="">
<xdr:nvSpPr>
<xdr:cNvPr id="5" name="テキスト ボックス 1"/>
<xdr:cNvSpPr txBox="1">
<a:spLocks noChangeArrowheads="1"/>
</xdr:cNvSpPr>
</xdr:nvSpPr>
<xdr:spPr bwMode="auto">
・・・
</xdr:spPr>
<xdr:txBody>
<a:bodyPr vertOverflow="clip" wrap="square" lIns="27432" tIns="18288" rIns="0" bIns="0" anchor="t" upright="1"/>
<a:lstStyle/>
<a:p>
<a:r>
・・・
<a:t>◯</a:t>
</a:r>
</a:p>
</xdr:txBody>
</xdr:sp>
<xdr:clientData/>
</xdr:twoCellAnchor>
テキストボックスの名前
テキストボックスのデータ(種類問わず)
例えばこういう◯がほしい
Excelと向き合う
➤ gem spreadsheetx (by satomicchy) :�部分的に使用可能
https://github.com/satomicchy/spreadsheetx
- 特定のセルへの差し込み
- 文字色、セルサイズ、セル塗りつぶしなどは変更しない(はず)
➤ その他
- 特定のテキストボックスへの差し込み・・・実装中
(どうgemに組み込むか考え中)
- シート保護のパスワードが変更できるようになる
“Excel
- @satomicchy

Más contenido relacionado

Más de Satomi Tsujita

RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1Satomi Tsujita
 
RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方Satomi Tsujita
 
Rubyビジネスセミナー大阪2015
Rubyビジネスセミナー大阪2015Rubyビジネスセミナー大阪2015
Rubyビジネスセミナー大阪2015Satomi Tsujita
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionSatomi Tsujita
 
Rails初心者レッスン lesson2 3edition
Rails初心者レッスン lesson2 3editionRails初心者レッスン lesson2 3edition
Rails初心者レッスン lesson2 3editionSatomi Tsujita
 
Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionRails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionSatomi Tsujita
 
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2editionRails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2editionSatomi Tsujita
 
Rails初心者レッスン lesson2 2edition
Rails初心者レッスン lesson2 2editionRails初心者レッスン lesson2 2edition
Rails初心者レッスン lesson2 2editionSatomi Tsujita
 
Rails初心者レッスン lesson1 2edition
Rails初心者レッスン lesson1 2editionRails初心者レッスン lesson1 2edition
Rails初心者レッスン lesson1 2editionSatomi Tsujita
 
Rails初心者レッスン lesson1 2edition
Rails初心者レッスン lesson1 2editionRails初心者レッスン lesson1 2edition
Rails初心者レッスン lesson1 2editionSatomi Tsujita
 
Rails初心者レッスン lesson4
Rails初心者レッスン lesson4Rails初心者レッスン lesson4
Rails初心者レッスン lesson4Satomi Tsujita
 
Rails初心者レッスン lesson3
Rails初心者レッスン lesson3Rails初心者レッスン lesson3
Rails初心者レッスン lesson3Satomi Tsujita
 
Rails初心者レッスン lesson1
Rails初心者レッスン lesson1Rails初心者レッスン lesson1
Rails初心者レッスン lesson1Satomi Tsujita
 

Más de Satomi Tsujita (20)

Gemの話 紹介編
Gemの話 紹介編Gemの話 紹介編
Gemの話 紹介編
 
RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1RubyとRailsのおいしい使い方 ver. okayama1
RubyとRailsのおいしい使い方 ver. okayama1
 
RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方RubyとRailsのおいしい使い方
RubyとRailsのおいしい使い方
 
Minami.rbの履歴書
Minami.rbの履歴書Minami.rbの履歴書
Minami.rbの履歴書
 
Wt2015
Wt2015Wt2015
Wt2015
 
Rubyビジネスセミナー大阪2015
Rubyビジネスセミナー大阪2015Rubyビジネスセミナー大阪2015
Rubyビジネスセミナー大阪2015
 
JAWS-UG2014
JAWS-UG2014JAWS-UG2014
JAWS-UG2014
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
 
Uragamiso re
Uragamiso reUragamiso re
Uragamiso re
 
Rails初心者レッスン lesson2 3edition
Rails初心者レッスン lesson2 3editionRails初心者レッスン lesson2 3edition
Rails初心者レッスン lesson2 3edition
 
Sql基礎の基礎
Sql基礎の基礎Sql基礎の基礎
Sql基礎の基礎
 
Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionRails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2edition
 
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2editionRails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2edition
 
Rails初心者レッスン lesson2 2edition
Rails初心者レッスン lesson2 2editionRails初心者レッスン lesson2 2edition
Rails初心者レッスン lesson2 2edition
 
Prawn087とrails235
Prawn087とrails235Prawn087とrails235
Prawn087とrails235
 
Rails初心者レッスン lesson1 2edition
Rails初心者レッスン lesson1 2editionRails初心者レッスン lesson1 2edition
Rails初心者レッスン lesson1 2edition
 
Rails初心者レッスン lesson1 2edition
Rails初心者レッスン lesson1 2editionRails初心者レッスン lesson1 2edition
Rails初心者レッスン lesson1 2edition
 
Rails初心者レッスン lesson4
Rails初心者レッスン lesson4Rails初心者レッスン lesson4
Rails初心者レッスン lesson4
 
Rails初心者レッスン lesson3
Rails初心者レッスン lesson3Rails初心者レッスン lesson3
Rails初心者レッスン lesson3
 
Rails初心者レッスン lesson1
Rails初心者レッスン lesson1Rails初心者レッスン lesson1
Rails初心者レッスン lesson1
 

Osaka rubykaigi01