2011-01-31 69 views
0

我使用FasterCsv將數據導出到CSV文件中rails.Now我想格式化CSV文件中的值格式化的CSV文件 - 軌道

title = ["NAME", "ID", "INSTITUTION"] 
    output.write FasterCSV.generate_line(title) 

像着色,加粗等

該怎麼做?任何幫助..

+0

如果這是Ruby 1.9,請注意FasterCSV現在是內置CSV庫的實現。 – Phrogz 2011-01-31 14:21:42

回答

0

CSV是一個純文本文件格式,AFAIK你不能供給字體,它的屬性。

2

由於其他人提到,您不能將格式添加到CSV文件。

CSV的意思是,字面意思是「逗號分隔值」。這是一個包含值的純文本文件,用逗號分隔。格式不包括在內。

如果要包括格式化(Excel文件,我pressume),你將不得不產生不同類型的文件 - 例如XLS文件。

您可以使用Spreadsheet gem來做到這一點。

我還沒有親自使用該格式的寶石。在谷歌搜索後,我找到了this forum,他們展示瞭如何使用它來改變單元格格式(這種情況下的背景顏色)。警告:我自己沒有嘗試過這個代碼,我不是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'