http://spreadsheet.rubyforge.orgを使用してスプレッドシートを生成していますが、何か問題があります。既存のブックを開いてデータを追加しています。
数値の書式設定をある程度機能させることができました。少なくともExcelはこのデータを数値として認識していますが、(非常にExcelとは異なりますが)クライアントは数値を中央に配置したいと考えています:(
私の現在のコードは次のようになります。
nfmt = Spreadsheet::Format.new :number_format => '0.00'
row = sheet.row(1)
row[0] = "Result"
row[1] = 45.55
row.set_format 1, nfmt
少し大げさかもしれませんが、誰か助けてくれませんか?
- 現在、スプレッドシートは書式設定を変更しません。特に、セルの値を日付に設定すると、変更前にフォーマットが正しく設定されている場合にのみ、日付として読み取ることができます。
トレヴォークの編集
ご協力いただきありがとうございます。私はあなたのコードを試してみましたが、うまくいきます。違いは、既存のスプレッドシートを編集していることです。この場合、書式設定は無視されます。これを試して:
require 'rubygems'
require 'spreadsheet'
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open "edit_me.xls" # Blank spreadsheet
sheet1 = book.worksheet 0
format = Spreadsheet::Format.new :horizontal_align => :centre
sheet1.row(0).default_format = format
sheet1.row(0).push 'I rule 2!', 43.56
book.write 'edited_you.xls'