Railsで使えるGem Windows

WindowsのRubyでExcelを操作~WIN32OLE

投稿日:

WIN32OLE

WIN32OLEは、windows用のrubyに標準添付されるライブラリでwindowsのソフトを操作することができる.

class WIN32OLE

おおむねここのとおり
Win32OLE 活用法 【第 2 回】 Excel

環境は、
Windows7 professional 64bit
Microsoft Excel 2010
ruby2.1.5

hello world

適当にxlsファイルを用意して、絶対パスを指定する.
Applicationオブジェクトをつくって、workbookを操作させるイメージで.
公式のサンプルはExcelを使ってxlsファイルを印刷する例.

Excelオブジェクトモデル

vbaをやってればだいたい同じ.
Excel VBA入門 (全19回)
Applicationオブジェクトは複数のworkbookオブジェクトを持ち、workbookオブジェクトは複数のworksheetオブジェクトを持ち、workbookオブジェクトの中にある任意の範囲をRangeオブジェクトで表すことができる.

絶対パスを取得するメソッド

ファイルは絶対パスを取らなければいけないのでるびまから引用.

パースの方法1 UsedRangeを使う

Excelシートから指定の範囲のデータを抜き出す(パース)の方法の一つ目はUsedRangeを使うこと
使用されている範囲をRangeオブジェクトにしてくれる.
Rowsプロパティ、ColumnsプロパティはRangeオブジェクトの集合.

パースの方法2 行数列数を直接指定する

ごちゃごちゃしたデータの場合、行数列数を直接指定することもできる.

値を取るメソッド

Worksheetを拡張して、[]というメソッドで複数の値を取る

すると、こんなかんじで値が取れる.

-Railsで使えるGem, Windows
-, ,

執筆者:

関連記事

no image

Rails4でOpenDocumentText(.odt)を作成~serenity(未完)

StackOverFlowでの質問に返事が来てたよ!ヽ(=´▽`=)ノ stackoverflow.com/questions/13080178/encodingundefinedconversion

no image

Rails3.2でユーザー管理機能を追加2~Devise+AjaxDataTables

  前回 Rails3.2でユーザー管理機能を追加~Devise 参照 Railsでajaxなテーブルを使う~datatables   いままでAjaxでのデータ更新ができなかった …

Rails3.2+jQueryUI1.10でjQuery-UI-Bootstrapのデモ画面を出すところまでやった

なにかいつの間にかかっこいい感じのサイトになってた addyosmani.github.com/jquery-ui-bootstrap/ jquery-ui-bootstrap.github.io/j …

Rubyで静的ページをジェネレート〜middleman

静的ページのジェネレータとしてはjekyllやこれを使ったoctopressなどがメジャーなようで middlemanもそんな静的なページのメジャーなジェネレータの1つ middlemanの利点は次の …

no image

Ubuntu server12.04でRails4とPostgreSQL9.3をつかう〜hstoreとか

目次1 準備2 rails new3 config/database.yml4 hstoreとarrayを試してみる 準備 Ubuntu server12.04にPostgreSQL9.3をインストー …