2011-10-11 52 views

回答

16
book = Spreadsheet::Workbook.new 
sheet = book.create_worksheet :name => 'Name' 
format = Spreadsheet::Format.new :color=> :blue, :pattern_fg_color => :yellow, :pattern => 1 
sheet.row(0).set_format(0, format) #for first cell in first row 

sheet.row(0).default_format = format #for entire first row 

你可以在每行迭代/单元格和应用风格正是你想要的地方

+2

善良缘故docs是可怕的!谢谢! – yekta

+0

不知何故,它不适合我 - http://stackoverflow.com/questions/24608513/not-able-to-style-excel-with-spreadsheet-gem-ruby –

+2

这是设置背景颜色的代码,而不是读它是OP要求的。 –

1

我刚刚试图找出相同的问题,并且好像在Spreadsheet gem的当前版本(0.6.5.9)中,读者不支持单元背景色的属性(您只能在背景颜色中定义细胞写作)。

以下是如何检查所有目前可用的电池属性:

a = Spreadsheet.open('/folder/spreadsheet.xls') 
puts a.worksheets[0].row(<rownumber>).format(<columnnumber>).inspect 

经过一些实验,但是我想通了,不是所有的人都能正确撷取。好消息是,开发商承诺落实在未来的版本单元格格更好的支持,所以我们只需要耐心等待:)

+0

http://stackoverflow.com/questions/24608513/not-able-to-style-excel-with-spreadsheet-gem-ruby –

4

我四处寻找可用于单元格背景颜色的颜色。例如:

Spreadsheet::Format.new({ :weight => :bold, :pattern => 1, :pattern_fg_color => :silver }) 

我无法找到关于哪些颜色可用的好信息:pattern_fg_color。我决定寻找Excel帮助,并找到:http://dmcritchie.mvps.org/excel/colors.htm(在“16种颜色的DOS分配”)。

它看起来像顶部16色工作:

0黑,1海军,2绿色,3蒂尔,4栗色,5紫6橄榄油,7银, 8灰色9蓝,10石灰, 11水族,12红色,13 Fuschia,14黄色,15白色

+1

您可以使用更多的着色选项 - http://www.softwaremaniacs.net/2013/11/setting-cell-color-using-ruby.html –