我正在使用FasterCsv将数据导出到rails中的CSV文件。现在我想格式化CSV文件中的值
title = ["NAME", "ID", "INSTITUTION"]
output.write FasterCSV.generate_line(title)
喜欢着色,Bold等。
怎么做?任何帮助..
答案 0 :(得分:2)
CSV文件中没有任何样式,它只是原始数据,csv用于纯文本格式文件..
参考此站点信息链接以供参考.. http://www.sitepoint.com/forums/showthread.php?t=532277
答案 1 :(得分:2)
正如其他人所说,您无法为CSV文件添加格式。
CSV表示字面意思是“逗号分隔值”。这是一个带有值的纯文本文件,以逗号分隔。格式不包括在内。
如果要包含格式(对于Excel,我按下),则必须生成不同类型的文件 - 例如xls文件。
您可以使用Spreadsheet gem。
执行此操作我没有亲自使用该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'
答案 2 :(得分:0)
CSV是纯文本文件格式,AFAIK无法在其中提供字体属性。