-->
./
<!-- フラ&#65533;ュが見れな&#65533;のためにここに何か書&#65533; --> フラ&#65533;ュがインス&#65533;&#65533;ルされて&#65533;&#65533;たいで&#65533;&#65533;&#65533;

2010年03月20日

Spreadsheet(RubyでExcelのファイル操作)

pure Ruby の Excelファイル操作ライブラリ - Spreadsheet: ひ日記
SpreadsheetはRubyからExecelファイルを操作するライブラリです。 MS-Officeには依存していないので、MS-Officeのインストールされていない環境(要はLinux環境)でも動作します。

 参考にさせていただきました。

 さくらインターネットのサーバで試してみたのですが、うまくいったみたいです。Excelはもちろんインストールされておらず、GUIの環境もないはずですが、大丈夫でした。

spreadsheet_OpenOffice_20100320
spreadsheet_OpenOffice_20100320 posted by (C)hirono-hideki

spreadsheet_firefox_20100320
spreadsheet_firefox_20100320 posted by (C)hirono-hideki


 Railsでやってみました。新規に作ったAPPなので、プラグインも入れておらず、特別な設定もしていません。手を入れたのは次の二つのファイルだけです。
 本来このような使い方をするつもりはないのですが、少し手を加えれば、Excelのファイルから、MySQLのデータベースに入れることが簡単にできそうです。また、問題の起きそうな記号を使って試してみました。十分なテストではありませんが、とりあえずは大丈夫そうです。

 book = Spreadsheet.open('test.xls', 'rb')で、読み込み専用になるそうです。オプションをつけないと'rb+'になるらしく、これは読み書き両方だと思います。

***********************************************                                                   
 [FILENAME] app/controllers/excel_controller.rb                                                   
***********************************************                                                   

class ExcelController < ApplicationController
  def index                                 
$KCODE='u'                                  
require 'spreadsheet'                       

book = Spreadsheet.open('test.xls')
sheet=book.worksheet(0)           

@list=[]
0.upto(sheet.row_count - 1) do |i|
  @list[i]=sheet[i,0]            
end                              

  end

end


***********************************************
 [FILENAME] app/views/excel/index.html.erb
***********************************************

<h1>Excel#index</h1>
  <% @list.each do |f| %>
    <p style="margin 30px; background-color: pink; color: green; padding:20px; width: 600px;">
    <%=sanitize f.gsub(/\r\n|\r|\n/, "<br />\n").gsub(/[ |\t]/, "&nbsp;") %>
    </p>
  <% end %>

<p>Find me in app/views/excel/index.html.erb</p>


Powered by ScribeFire.



posted by hirono at 04:55| Comment(0) | TrackBack(0) | Ruby
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/36527720

この記事へのトラックバック