RubyでCOMライブラリを使わずにExcel読み書きできるライブラリ

大抵のプログラミング言語では、Excelの読み書きができるライブラリが作成されている。

しかしその大半が、COMを呼び出すためのラッパーで、実際にExcelがインストールされていないと使えない。

そんななか、100%ピュアRubyで記述されていて、Excelがインストールされていない環境でもExcelの読み書きができるライブラリを見つけた。

その名もSpreadsheet。

今回は、このSpreadsheetの使い方について紹介する。

前準備

Spreadsheetは、gemの機能だけでインストール可能。

gem install spreadsheet

gemのライブラリもそこそこ充実しているため、参考になると思う。

Excelファイルを新規に作成する

まずはExcelファイルを新規に作成するサンプルプログラムを紹介する。

(スクリプトはutf-8で保存して下さい)

このプログラムを実行すると、実行ディレクトリにsample.xlsというファイルが作成され、これをExcelで開いて閲覧できることが確認できる。

既存のExcelファイルを読む

先程作成したファイルを読み込むサンプルプログラムを作成してみた。

(utf-8で保存して下さい)

 

実行結果:

0行目0列目 : 0行0列目値
0行目1列目 : 0行1列目値
1行目0列目 : 1行0列目値
1行目1列目 : 1行1列目値

 

Excelファイルの内容が、確かに読み込めていることがわかった。

 

フォントを変更してみる

初期では、spreadsheetライブラリで作成したExcelファイルの中身のフォントはArialになり、フォントサイズは10になる。

これはspreadsheetライブラリのデフォルトとして、どうやらソースにハードコーディングされてしまっている。

フォントを指定してやることで、任意のフォントのExcelファイルを作成することができる。

これを実行すると、実行フォルダに「font_specified.xls」というファイルが作成される。

このファイルを開いてみると、確かに指定したフォント、指定したフォントサイズとして保存されていることが確認できると思う。

 

Spreadsheetライブラリの限界

このように、Spreadsheetライブラリはかなり優秀だ。
しかし、限界もある。

Spreadsheetは、xls形式には対応しているが、xlsx形式には対応していない。

最近の主流はもはやxls(Excel2003形式)ではなく、xlsx(Excel2007以降形式)だ。

下位互換があるとはいえ、この点の改善が実装されることを期待したい。

 

コメントを残す

トラックバック: http://pgnote.net/wp-trackback.php?p=254