Как уже упоминалось, нельзя добавлять форматирование в файлы CSV.
CSV буквально означает «значения, разделенные запятыми». Это обычный текстовый файл со значениями, разделенными запятыми. Форматирование не включено.
Если вы хотите включить форматирование (для Excel, я полагаю), вам придется сгенерировать другой тип файла - например, файл xls.
Это можно сделать с помощью гема Spreadsheet .
Я лично не использовал этот камень для форматирования. После быстрого поиска в Google я нашел этот форум , на котором они показывают, как использовать его для изменения формата ячейки (цвет фона в этом случае). Предупреждение: я сам не пробовал этот код, и я не уверен на 100%, что он актуальный.
require 'rubygems'
require 'spreadsheet'
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet::Workbook.new
class ColorFormat < Spreadsheet::Format
def initialize(color)
super :pattern => 1, :pattern_fg_color => color
end
end
sheet = book.create_worksheet :name => 'My fruits'
fruits = {
'apple' => :red,
'lemon' => :yellow,
'orange' => :orange
}.each_with_index do |(fruit, color), i|
sheet[0, i] = fruit
sheet.row(0).set_format(i, ColorFormat.new(color))
end
sheet.row(0).height = 14
book.write '/home/serge/Documents/fruits.xls'