Ruby on rails Ruby spreadshet gem,如何将数字居中对齐

Ruby on rails Ruby spreadshet gem,如何将数字居中对齐,ruby-on-rails,ruby,spreadsheet,spreadsheet-gem,Ruby On Rails,Ruby,Spreadsheet,Spreadsheet Gem,我正在使用生成电子表格,但我遇到了一些问题。我正在打开现有工作簿并向其中添加数据 我已经设法使数字格式在某种程度上起作用,至少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, nf

我正在使用生成电子表格,但我遇到了一些问题。我正在打开现有工作簿并向其中添加数据

我已经设法使数字格式在某种程度上起作用,至少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'

下面是该库的格式化方法的代码:。上次我使用该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。让我知道。

谢谢,我已经尝试过设置它,但它似乎不起作用。我在问题指南中添加了一条注释。虽然我不完全理解它的意思,但它说它不会修改格式,即使我的原始文件中有中心对齐,wr新数据似乎取代了这一点。这是“数据格式”而不是“显示格式”。数据格式是日期、货币等。我想显示是……嗯,坏了。是时候向他们发送错误报告了!在我这样做之前,我最好检查一下(如果你不介意的话)我已经理解了如何正确使用它!enum向format类添加了一个实例方法,对吗?第一个参数是默认值(:default)。我尝试在调用format.new时传递:horizontal_align=>:center,并在创建format对象(nmft)后调用它,两者都不起作用。请查看我编辑的问题。事实上,我发现,完全不使用格式并调用.to\f对任何十进制值进行调整,它们都会按要求居中对齐。只要电子表格事先以这种方式设置。看起来库有问题。是的..看起来你确实发现了一个错误!它是doesn对我也不起作用。我已经记录了一个错误记录。再次感谢您的帮助:)我们如何使用行和列号推送到特定的单元格??