Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 6. 10. 2014 23:08:02

Igi71
Člen
Registrace: 6. 10. 2014
Příspěvků: 4

Chyba v ukladani do csv

Mam problem s ulozenim do csv - bunky jako textove pole a v nich napr. hodnota 03509440000. Ukladam jako UTF-8, oddelovac pole ; oddelovac textu " a ve vyslednem csv zmizi nula na zacatku 3509440000.

Verze LO: 4.3.2.2

Offline

#2 7. 10. 2014 07:08:26

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,678

Re: Chyba v ukladani do csv

Tohle je problém formátu čísla. Výraz se ukládá jako číslo. V Calcu máte možnost buď vytvořit formát s uvozující(mi) nulou (nulami), nebo použít textový formát s jednoduchou uvozovkou ( ' ) na začátku. První případ je srozumitelný jen pro buňku sešitu a přímo zápisu čísla se netýká.
     Druhý případ je na tom podobně, ale má to tu výhodu, že se to vlastného formátu čísla týká. Znamená to, že uvozující nuly by se měly zachovat i po přenosu do csv. To jenom pro upřesnění.


     Problém bude asi jinde. Ta ztracená nula je vidět zřejmě zase jen v Calcu (Writeru) LO po opětovném otevření. Jak vypadá ten soubor .csv v originální textové formě? Tedy například pro Windows v Poznámkovém bloku? Nebo obecně v externím textovém editoru (je jich hodně jak pro Windows, tak Linux)?


     Docela jsem překvapený tím, že to otevíráte jako UTF-8. Tady bych tipoval ten problém. Když otevíráte v LO (Calc, ale i Writer) soubory CSV tak se to dělá importním filtrem ve kterém stačí zadat separátory. Jde o to, že je automaticky vybrána znaková sada podle nainstalovaného systému. Originálně se vloží TEXT (CSV je textový formát). LO ale po importu automaticky rozpozná čísla a tehdy se to stane. Uvozující nuly se oříznou. Aby se to nestalo, je potřeba aby se ukládaný formát ukládal s tou jednoduchou uvozovkou na začátku. Ta se zachovává a tím se udrží textový formát čísla.
     Z Vašeho příspěvku je sice zřejmé, že buňky mají textový formát, ale není zřejmé, zda jde o buňky Calcu, nebo tabulky Writeru. Trošku mne při tom mate Váš výraz Mam problem s ulozenim do csv - bunky jako textove pole.
     Textové pole je výraz pro ovládací prvek (to platí pro Calc, Writer a ostatní součásti shodně). Správně by to asi mělo být popsáno jako : Textový formát čísla v buňce. Volba FORMÁT > BUŇKY > ČÍSLO > TEXT(JE TAM ZAVINÁČ).
     Navíc výraz POLE je velice širokým pojmem. Existují různá pole pro různé účely, nejen tedy pro ovládací prvky. U mne to evokuje ještě představu pole v XML, nebo HTML, což by už s formátem UTF-8 opravdu souviselo.


     Je potřeba zřejmě upřesnit co a jak děláte před uložením, jak to vypadá v textové formě nezávislké na LO (OpenOffice) a co se děje následně - je to zpětně importováno do LO? V jakém programu to vytváříte (Calc, Writer) a v jakém to popřípadě načítáte?

Editoval neutr (7. 10. 2014 07:11:40)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 7. 10. 2014 12:43:53

Igi71
Člen
Registrace: 6. 10. 2014
Příspěvků: 4

Re: Chyba v ukladani do csv

Prikladam priklad ukladani a nasledneho otevreni csv.


export-01.PNG
export-02.PNG
export-03.PNG
otevreni-01.PNG
otevreni-02.PNG

Offline

#4 7. 10. 2014 15:49:42

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,678

Re: Chyba v ukladani do csv

Raději jsem si to otestoval a skutečně jde o chybu. Calc LO verze 4.3.2.2. textový formát čísel ze souborů CSV neakceptuje. Po načtení prostě odstraní automaticky jednoduchou uvozovku a je po parádě. A to i v případě, že je uvedena jednoduchá uvozovka jako separátor textu.
     To je chyba, kterou lze prozatím vyřešit tak, že například jednoduchou uvozovku nahradíte za tečku, nebo jiný alfabetický znak. Vybereme vše (celý list). Zvolíme ÚPRAVY >  NAJÍT A NAHRADIT > DIALOG NAJÍT - zadáme jednoduchou uvozovku (tuším CHAR(34), nebo klávesnice ALT+39) a DIALOG NAHRADIT - zadáme třeba tu tečku ap. (ta pak nesmí být separátorem).
     Po opětovném načtení Proces náhrady přehodíme - za "tečku" dáme jednoduchou uvozovku.


     Pokud to potvrdí někdo na LINUXU, chtělo by to nahlásit jako chybu na BugZillu.

Editoval neutr (7. 10. 2014 16:17:10)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 7. 10. 2014 18:06:04

poky
Člen
Registrace: 23. 9. 2005
Příspěvků: 69

Re: Chyba v ukladani do csv

Potvrzuji toto chování v linuxu. smile
Testováno na Debian Sqeeze.
LibreOffice Verze: 4.3.2.2
ID sestavení: edfb5295ba211bd31ad47d0bad0118690f76407d

Offline

#6 7. 10. 2014 20:43:47

Igi71
Člen
Registrace: 6. 10. 2014
Příspěvků: 4

Re: Chyba v ukladani do csv

To jako reseni je, ale to csv se po exportu pouziva jako import do Mysql. Takze toto neresi problem. Pokud by slo chybu nejak rychle opravit....

Offline

#7 8. 10. 2014 08:07:53

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,678

Re: Chyba v ukladani do csv

Ten problém se týká okamžiku, kdy se CSV zpětně načítá do Calcu. Takže pokud je finálním výstupem jen formát pro MySQL (a ne pro Calc) tak nic nedělejte. Po uložení do CSV tam uvozující nuly jsou.
     Oprava této chyby může chvíli trvat. Totéž dělá Apache OpenOffice poslední verze a nedivil bych se, když by v tom byl i záměr. Zpětně totiž lze zjistit, že chyba formátu - nechtěný text místo čísla - je velice frekventovaná. Je možné, že došlo k tvrdé úpravě textových formátů na číslo jen proto, aby se podobná chyba nevyskytovala.

Editoval neutr (8. 10. 2014 08:08:43)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#8 8. 10. 2014 09:01:43

Ondra.kl
Člen
Registrace: 30. 9. 2008
Příspěvků: 933

Re: Chyba v ukladani do csv

AOO 4.1.1 : při importu klepněte na záhlaví sloupce a změňte typ sloupce ze "standardní" na "text" ... pak to načte včetně úvodních nul.

Offline

Zápatí