将文本格式添加到CSV文件文本

时间:2019-05-31 10:15:50

标签: ruby-on-rails ruby

我正在使用csv_table_view(下面复制的代码)创建一个CSV文件。我想给CSV数据加上一些短信前缀。此消息应为红色且加粗。有什么方法可以在消息字符串中指定文本颜色和粗体属性。这是我的代码-

def render_csv(view)
    ctv = CsvTableView.new(view)
    csv = ctv.render
    render_csv_content(csv, ctv)
end

def render_csv_content(csv, ctv)
    headers['Content-Type'] = "application/vnd.ms-excel"
    headers['Content-Length'] = csv.size
    headers['Cache-Control'] = ''
    headers['Content-Disposition'] = %{attachment; filename="#{ctv.filename}"; size=#{csv.size}}
    render :text => csv
  end

def render
    @table.prepare(true)
    @ret = []
    @ret ="Hello this message should be red and bold \n"
    @ret +=  @table.columns.map do |col|
      col.split ? col.split.map { |c| "#{col.name} #{c}" }.join(",") : csv_escape(col.name)
    end.join(",") + "\n" +
            @table.all_rows.map { |row| row.map { |col| csv_escape(col) 
            }.join(",") }.join("\n") 
end

我读过一篇文章,内容类型为 application / vnd.ms-excel ,我们无法在文本中添加格式。有什么想法吗?预先感谢。

1 个答案:

答案 0 :(得分:2)

无法将格式添加到CSV文件。只能是文字。

您似乎想要一个excel文件。一种建议是使用spreadsheet gem。这允许格式化并输出为XLS文件。 guide对于查看如何执行此操作很有用。