Ruby spreadshet gem,我如何居中对齐数字

我正在使用http://spreadsheet.rubyforge.org生成一个电子表格,我遇到了麻烦。 我正在打开现有工作簿并向其中添加数据。

我已经设置了数字格式在某种程度上工作,至少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' 

好吧,这是库格式方法的代码: 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' 

这对我有用。 尝试 – 同时使用:center和:center。 让我知道。