尝试为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"
这是错误的方法吗?我将在编辑和更新之前尝试制作新的工作簿。
答案 0 :(得分:0)
嗯,无法格式化现有的Excel,然后将其编写为新的Excel。格式化丢失了。 为了克服我创建了一个新的excel(填充了我从旧excel读取的现有数据)格式化它,然后使用
book.write“xxx.xls”