0

我正在使用 FasterCsv 将数据导出到 rails 中的 CSV 文件。现在我想格式化 CSV 文件中的值

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

如着色,粗体等。

怎么做?任何帮助..

4

3 回答 3

2

CSV 文件中没有任何样式,它只是原始数据,而 csv 用于纯文本格式文件。

请参阅此站点链接以供参考.. http://www.sitepoint.com/forums/showthread.php?t=532277

于 2011-01-31T09:31:41.900 回答
2

正如其他人所提到的,您无法向 CSV 文件添加格式。

CSV 的字面意思是“逗号分隔值”。这是一个带有值的纯文本文件,用逗号分隔。不包括格式化。

如果您想包含格式(我认为是 Excel),您将不得不生成不同类型的文件 - 例如 xls 文件。

您可以使用电子表格 gem来做到这一点。

我没有亲自使用该宝石进行格式化。经过快速的谷歌搜索后,我发现了这个论坛,他们在其中展示了如何使用它来更改单元格的格式(本例的背景颜色)。警告:我自己没有尝试过这段代码,我不能 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'
于 2011-01-31T10:37:04.230 回答
0

CSV 是纯文本文件格式,AFAIK 你不能在其中提供字体属性。

于 2011-01-31T09:17:38.370 回答