Chybný oddělovač údajů
Jediný přípustný oddělovač údajů v CSV souboru je (jak už plyne z názvu formátu, tj. Comma Separated Values) čárka, tj. znak ,
s UTF-8 kódem U+002C.
Může se ale stát, že váš soubor používá jiný oddělovač, v českém prostředí zejména středník ;
, a proto není validní.
Nejčastěji je to způsobeno tvorbou CSV souboru pomocí exportu tabulky z aplikace Microsoft Excel, která má ale podporu CSV implementovánu chybně.
Symptomy
Po otevření CSV souboru tabulkovým editorem jsou všechny údaje na řádku zobrazeny v jedné buňce.
Ověření problému
Chybný oddělovač lze zjistit buďto použitím validátoru, nebo jednoduše otevřením souboru textovém editoru a vizuální kontrolou oddělovače.
Řešení
Je třeba zajistit, že soubor používá správný oddělovač, tzn. čárku ,
. To lze několika způsoby.
Správné nastavení výstupu u zdroje
Nejjednodušší je zásah u zdroje problému, tedy pokud CSV soubor exportujeme z databáze, nebo generujeme v kódu aplikace, mělo by jít oddělovač nastavit na čárku.
Konverze pomocí Google Sheets pro menší soubory
Jedna z cest k validnímu CSV vede přes použití importní funkce Google Sheets, která ale funguje jen pro menší soubory. Budeme potřebovat Google účet, který ale lze zřídit zdarma.
- Z Google Drive (Disk Google) otevřeme nový Google Spreadsheet
- V menu File klikneme na Import
- V záložce Upload zvolíme soubor s chybným oddělovačem
- V dialogu nastavíme oddělovač na středník
;
- Po doběhnutí importu máme data v Google Sheets
- Pak můžeme data stáhnout jako validní CSV soubor
Konverze z Microsoft Excel
Microsoft Excel má export CSV souboru chybně implementován. Jako oddělovač volí to, co má operační systém Windows nastaveno v Regionálním nastavení jako oddělovač seznamu, což je v českém prostředí středník ;
. Výsledkem je tedy nevalidní soubor.
Mohlo by se zdát, že řešením je tedy přenastavit toto nastavení. Řešení je to ale jen částečné, protože vzniklý soubor stejně není v kódování UTF-8 a byla by nutná další konverze.
Můžeme ale rovněž využít Google Sheets jako v předešlém kroku, a to i pro velké XLS(X) soubory.
- Do Google Drive (Disk Google) nahrajeme XLS(X) soubor a otevřeme ho pomocí Google Sheets
- Stáhneme data do CSV souboru