pure Ruby の Excelファイル操作ライブラリ - Spreadsheet: ひ日記SpreadsheetはRubyからExecelファイルを操作するライブラリです。 MS-Officeには依存していないので、MS-Officeのインストールされていない環境(要はLinux環境)でも動作します。
参考にさせていただきました。
さくらインターネットのサーバで試してみたのですが、うまくいったみたいです。Excelはもちろんインストールされておらず、GUIの環境もないはずですが、大丈夫でした。
spreadsheet_OpenOffice_20100320 posted by
(C)hirono-hideki
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]/, " ") %>
</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