正确导出CSV打开Office(将数字保存为TEXT)

时间:2012-06-05 21:57:31

标签: csv numbers delimiter openoffice-calc magmi

我正在使用OPEN-OFFICE工作并保存CSV。我正在使用逗号分隔符和'“'。但是,在保存CSV时,所有数字都没有被封装。我如何强制Open-Office将数字视为文本并将它们封装起来。例如:

"store","website","attribute_set","type","sku","name","price","categories","description","qty","sizet","is_in_stock","status","visibility","tax_class_id"
"admin","base","test","simple","T010013-012","Test12","12","test/test","Desc12",12,"S","1","Enabled","Catalog, Search","Taxable Goods"
"admin","base","test","simple","T010013-013","Test13","13","test/test","Desc13",13,"M","1","Enabled","Catalog, Search","Taxable Goods"
"admin","base","test","simple","T010013-014","Test14","14","test/test","Desc14",14,"L","1","Enabled","Catalog, Search","Taxable Goods"
"admin","base","test","simple","T010013-015","Test15","15","test/test","Desc15",15,"XL","1","Enabled","Catalog, Search","Taxable Goods"
"admin","base","test","simple","T010013-016","Test16","16","test/test","Desc16",16,"XXL","1","Enabled","Catalog, Search","Taxable Goods"
"admin","base","test","configurable","T010013","TestParent","5","test/test","DescParent","30","","1","Enabled","Catalog, Search","Taxable Goods"

感谢您的帮助。 PS:我正在为Magento使用MAGMI脚本。正在上传产品

3 个答案:

答案 0 :(得分:20)

这需要两个步骤:

  1. 将包含数字的单元格设置为文本格式(因为整个列需要格式化,只需将该格式应用于完整列,因此如果添加行,则无需格式化每个新单元格); < / p>

  2. 修改导出过滤器设置以引用所有文本单元格:

  3. edit filter settings

    quote all text cells

    使用此设置,Calc应保存此工作表:

    sheet

    如下:

    "bar","42"
    "foo","57"
    

    BTW,Calc完全符合标准默认引用每个数字。至少,RFC 4180不需要引用每个字段。

答案 1 :(得分:1)

使用正确的SQL导入语法,可以稍微更轻松地解决此问题。请考虑以下事项:

LOAD DATA LOCAL INFILE '/yourfile.csv' 
INTO TABLE yourtable  
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"';

选择性地包含在&#39;&#34;&#39; line应解决数字行的问题,而不必花时间搞乱从Open / LibreOffice等辅助应用程序导出时如何格式化CSV。

答案 2 :(得分:0)

写了一个小的ruby脚本来做这个,而不是试图在OpenOffice或Excel中找到选项。仍然找不到它们。

require 'csv'

rows = CSV.open(ARGV[0]).readlines
CSV.open("#{ARGV[0].split('.')[0]}_qgisfriendly.csv", "w", {:force_quotes => true}) do |csv|
  rows.each do |row|
    csv << row
  end
end