2012-06-05 4 views
9

Ich verwende OPEN-OFFICE zum Arbeiten und Speichern von CSV. Ich verwende das Komma-Trennzeichen und '' 'auch. Jedoch, wenn Sie die CSV speichern, werden alle Zahlen nicht eingekapselt. Wie kann ich Open-Office erzwingen, Zahlen als ein Text zu behandeln und sie auch verkapselt zu lassen. Beispiel:Export von CSV richtig öffnen Office (Speichern von Zahlen als TEXT)

"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" 

Vielen Dank für Ihre Hilfe PS:. ich MAGMI Skript für Magento bin mit dem Artikel

+1

Beachten Sie, dass in CSV nichts angegeben werden muss, das kein Komma oder eine neue Zeile enthält.Sie ​​könnten alle Anführungszeichen aus Ihrem Beispiel entfernen und es würde gültige CSV bleiben –

Antwort

17

Dies erfordert zwei Schritte:.

  1. Format der Zahlen als Text (da die gesamten Spalte Zellen halten wird diese Formatierung brauchen, nur das anwenden Format in die vollständige Spalte, so dass Sie nicht jede neue Zelle formatieren müssen, wenn Sie Zeilen hinzufügen);

  2. Ändern Sie die Exportfiltereinstellungen alle Textzellen zu zitieren:

edit filter settings

quote all text cells

Mit dieser Einstellung sollte Calc dieses Blatt sparen:

sheet

wie folgt:

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

BTW, Calc ist vollständig standardkonforme nicht jede Zahl standardmäßig zu zitieren. Zumindest muss RFC 4180 nicht jedes Feld angeben.

+0

Ich mache genau dasselbe. Aber wenn ich öffne es mit Notepad ++, alle Zahlen werden nicht zitiert – user1023021

+0

Hmm - hast du sichergestellt, dass die Zellen als Text formatiert sind? Ich nehme an, das "zitieren alle Textzellen" betrifft nur richtig- formatierte Zellen. Ich habe das mit dem neuesten LibreOffice 3.5.4.2 (Win 7) getestet, also bin ich mir sicher, dass es funktioniert. Aber ich werde wieder mit Linux testen, vielleicht hast du einen Fehler? – tohuwawohu

+0

@ user1023021: gerade mit Ubuntu Linux getestet - funktioniert auch bei mir einwandfrei (LibreOffice 3.5.4.2). Ich bin mir also sicher, dass die Lösung funktioniert. – tohuwawohu

0

Ich habe ein kleines Ruby-Skript dafür geschrieben, um die Optionen in OpenOffice oder Excel zu finden. Kann sie immer noch nicht finden.

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 
1

Es gibt eine etwas einfachere Möglichkeit, dieses Problem mit der richtigen SQL-Import-Syntax zu umgehen. Beachten Sie Folgendes:

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

Die OPTIONALLY ENCLOSED BY ‚"‘Linie soll das Problem mit numerischen Zeilen beheben, ohne Zeit mit Unordnung zu verbringen, wie die CSV bei der Ausfuhr von einer sekundären Anwendung wie Öffnen/Libreoffice formatiert ist.