无法使用电子表格gem(Ruby)设置Excel样式

时间:2014-07-07 10:30:45

标签: ruby excel spreadsheet

尝试为excel设计样式 - ruby spreadsheet row background color但我没有发生任何事情 -

这是我的代码 -

我的格式:

pass_format = Spreadsheet::Format.new :color=> :blue, :pattern_fg_color => :green, :pattern => 1
fail_format = Spreadsheet::Format.new :color=> :blue, :pattern_fg_color => :red, :pattern => 1
skip_format = Spreadsheet::Format.new :color=> :blue, :pattern_fg_color => :yellow, :pattern => 1

尝试在这里使用它们(只显示一个休息由if elses决定):

sheet1.row(counter).default_format = skip_format
sheet1[counter, 3] = 'Skipped'
sheet1.row(counter).default_format = skip_format
sheet1.row(counter).set_format(3, skip_format)

计数器是我目前所在的行。在这里,我不确定我应该先格式化还是先写入。我究竟做错了什么?如何解决这个问题?

实际上,我从.inspect -

中找到了它
#<Spreadsheet::Format:0x007f082f9c1d58 @font=#<Spreadsheet::Font:0x007f082f9c1a88 @name="Arial", @color=:red, @previous_fast_key=nil, @size=nil, @weight=nil, @italic=nil, @strikeout=nil, @outline=nil, @shadow=nil, @escapement=nil, @underline=nil, @family=:swiss, @encoding=nil>, @number_format="GENERAL", @rotation=0, @pattern=1, @bottom_color=:black, @top_color=:black, @left_color=:black, @right_color=:black, @diagonal_color=:black, @pattern_fg_color=:yellow, @pattern_bg_color=:pattern_bg, @regexes={:date=>/[YMD]/, :date_or_time=>/[hmsYMD]/, :datetime=>/([YMD].*[HS])|([HS].*[YMD])/, :time=>/[hms]/, :number=>/[#]/}, @used_merge=0>

但即使它在excel中显示红色,它也是黑色的。 :(

我正在编辑原始文件,然后在新文件中写作

 book.write "Result.xls"

这是错误的方法吗?我将在编辑和更新之前尝试制作新的工作簿。

1 个答案:

答案 0 :(得分:0)

嗯,无法格式化现有的Excel,然后将其编写为新的Excel。格式化丢失了。 为了克服我创建了一个新的excel(填充了我从旧excel读取的现有数据)格式化它,然后使用

  

book.write“xxx.xls”