首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby csv标签打印解决方案

Ruby csv标签打印解决方案
EN

Stack Overflow用户
提问于 2014-11-06 12:15:41
回答 1查看 44关注 0票数 0

将结果打印到选项卡中的csv文件时出现问题

代码语言:javascript
复制
prod = { "name": "Georeous,elements,are upcoming,this year","desc":"hi"}

p = prod
File.open("file.csv","wb") do |f|
p.each do |s|
f.print "#{s["name"]}\t"
f.print "#{s["desc"]}\t"
end
end

在上面的代码中,prod散列有一个name键,其值用逗号分隔

由于逗号原因,我的代码打印为

代码语言:javascript
复制
name       desc
Georeous   elements  are upcoming  this year     hi

但我想把这个打印成

代码语言:javascript
复制
name                                         desc
Georeous,elements,are upcoming,this year     hi
EN

回答 1

Stack Overflow用户

发布于 2015-09-15 02:42:39

如果您仍然对这个问题感兴趣,一个可能的解决方案是引用您生成的CSV中的单元格。这应该会告诉稍后打开文件的电子表格应用程序忽略单元格中的逗号。

代码语言:javascript
复制
name    desc
"Georeous,elements,are upcoming,this year"  "hi"

此外,您之前的代码还存在一些问题。一个问题是,prod是一个散列而不是数组,所以s不是包含键"name“和"desc”的散列。

代码语言:javascript
复制
products = [
  {"name" => "Georeous,elements,are upcoming,this year",
   "desc" => "hi"},
  {"name" => "Rose",
   "desc" => "a rose by any other name"}
]

File.open("file.csv", "w") do |f|
  f.puts "name\tdesc"
  products.each do |product|
    f.print "\"#{product["name"]}\"\t"
    f.print "\"#{product["desc"]}\"\n"
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26771610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档