2010-01-20 78 views
1

我使用http://spreadsheet.rubyforge.org來生成電子表格,我遇到了麻煩。我打開現有的工作簿並向其添加數據。紅寶石塗層寶石,我怎麼能對齊一個數字

我已經manged得到數字格式的工作在一定程度上,至少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 

也許有點牽強,但不知道是否有人能幫助

  • 電子表格不修改目前格式化噸。帽子特別 意味着如果一個單元格的值設置爲一個日期,它只能如果格式是正確設置變更前讀作 日期。

編輯爲Trevoke

感謝您與此幫助。我試過你的代碼,它工作正常。我想不同的是我正在編輯現有的電子表格,在這種情況下,格式化將被忽略。試試這個:

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' 
+0

是的..它肯定看起來像你發現了一個錯誤!它也不適用於我。 – Trevoke 2010-01-22 13:47:13

+0

我已經記錄了一個錯誤記錄https://rubyforge.org/tracker/index.php?func=detail&aid=27719&group_id=678&atid=2677。再次感謝您的幫助:) – tsdbrown 2010-01-22 15:24:21

+0

我們如何推動到一個特定的單元格...與行號和列號? – 2014-07-08 07:07:42

回答

2

那麼,這裏是庫的格式方法的代碼:format.rb。上次我使用該寶石,它沒有格式化很好,但它看起來已經更新。

你可以試試這個:

54  # Horizontal alignment  
    55  # Valid values: :default, :left, :center, :right, :fill, :justify, :merge,  
    56  #    :distributed  
    57  # Default:  :default  
    58  enum :horizontal_align, :default, :left, :center, :right, :fill, :justify,  
    59        :merge, :distributed,  
    60   :center  => :centre,  
    61   :merge  => [ :center_across, :centre_across ],  
    62   :distributed => :equal_space 

編輯!其他信息

require 'rubygems' 
require 'spreadsheet' 

Spreadsheet.client_encoding = 'UTF-8' 

book = Spreadsheet::Workbook.new 
sheet1 = book.create_worksheet :name => 'test' 

format = Spreadsheet::Format.new :horizontal_align => :centre 
sheet1.row(0).default_format = format 
sheet1.row(0).push 'I rule!' 

book.write 'test.xls' 

這對我有效。嘗試一下 - 同時使用:中心和:中心。讓我知道。

+0

謝謝,我已經嘗試過設置,但它似乎沒有工作。我在我的問題的指南中添加了一條評論。雖然我不完全瞭解這意味着它說,它不修改格式,即使我的原始文件中有居中對齊,寫入新的數據似乎替換。 – tsdbrown 2010-01-21 10:13:37

+0

這是「數據格式」而不是「顯示格式」。數據格式是日期,貨幣等 顯示是..好,壞了,我猜。有時間向他們發送錯誤報告! – Trevoke 2010-01-21 13:29:55

+0

之前,我做我最好檢查一下(如果你不介意的話),我已經明白如何正確地使用此功能!枚舉添加一個實例方法的格式類權利?第一個arg是默認值(:default)。我試過傳:horizo​​ntal_align =>:中心調用Format.new並創建格式對象(nmft),無論是下班後調用它。 – tsdbrown 2010-01-21 15:38:25