2

我正在使用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

也许有点牵强,但想知道是否有人可以提供帮助?

  • 电子表格目前不修改格式。这尤其意味着,如果将单元格的值设置为日期,则只有在更改之前其格式设置正确时,才能将其读取为日期。

为 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'
4

1 回答 1

4

好吧,这是库格式方法的代码:format.rb。上次我使用那个 gem 时,它的格式化不太好,但看起来它已经更新了。

你可以试试这个:

  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'

这对我有用。试试看 - 同时使用 :centre 和 :center。让我知道。

于 2010-01-20T18:26:07.623 回答