我正在使用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脚本。正在上传产品
答案 0 :(得分:20)
这需要两个步骤:
将包含数字的单元格设置为文本格式(因为整个列需要格式化,只需将该格式应用于完整列,因此如果添加行,则无需格式化每个新单元格); < / p>
修改导出过滤器设置以引用所有文本单元格:
使用此设置,Calc应保存此工作表:
如下:
"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