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

#1 10. 8. 2016 15:27:03

Rogner
Člen
Registrace: 10. 8. 2016
Příspěvků: 5

Problém se změnou v datumu

Mám problém s formátováním datumu v Libre Office ve Spreadsheetu.

Stáhnu si databázi z našeho webu, otevřu a v kolonce Datum registrace mám datum ve formátu 20/09/2015. Potřebuji ho změnit na 20.09.2015, tak kliknu na Data - Text to columns - označím Column, vyberu Date (DMY) a potvrdím. Datumy se změní na formát 20.09.2015 tak, jak jsem chtěl.
Dám uložit jako .csv v UTF-8, protože ten upravovaný byl v jiném kodování. Uložím a zavřu.
Když znovu otevřu, datumy se změní na úplně nesmyslný, sice ve formátu "20.09.2015", ale úplně s jinými roky.

Kde dělám chybu? Co se stalo?

Díky

Offline

#2 10. 8. 2016 19:46:45

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 520

Re: Problém se změnou v datumu

jak to vypadá v .csv když jej otevřete třeba v notepadu? (ještě před otevřením v LO)


LibreOffice 5.2.2.2

Offline

#3 10. 8. 2016 19:53:28

Rogner
Člen
Registrace: 10. 8. 2016
Příspěvků: 5

Re: Problém se změnou v datumu

ludviktrnka napsal(a)

jak to vypadá v .csv když jej otevřete třeba v notepadu? (ještě před otevřením v LO)

Vypadá , že je v pořádku a že zobrazuje dobře.

Offline

#4 10. 8. 2016 20:22:38

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

Re: Problém se změnou v datumu

Já bych doporučil mrknout se na nastavení formátu datumu. Ty lomítka jsou dány právě externím formátem. CSV to prostě vezme jako text, takže vlastní CSV akceptuje to co je formátem sešitu. Formát s lomítky tam není, takže ho Calc nerozpozná. To znamená, že při manuálním převodu se to zobrazí sice dobře, ale je otázkou co je pak v tom formátu c.s.v.
     Když si utvoříte vlastní formát s lomítky, tak ho sešit jako daumovový formát rozpozná a zřejmě bude schopen i takto odeslat do CSV. Nejprve tedy jen CSV které pak následně převedete na formát UTF-8. Tam zkontrolujte co vám to vypíše. Pokud tam bude nesmysl, bude to podstata chyby. Když ne tak bude chyba v exportu do UTF-8.
     Jde totiž o to, že i sady UTF-8 jsou národními sadami, ale zdroj mají v UTF-16, respektive prakticky shodně s UNICODE (16 bit). U národních sad se očekává národní formát datumu, takže potom se asi stane, že datum coby číslo se řadí jinak do textové podoby. V každém případě to vypadá jako chyba ve formátu datumu mezi formáty RRRR MM DD (USA) a naším DD MM RRRR, a jinými standardy.
     Takže chyba je pravděpodobně ve špatném formátování už při převodu UTF-8 - UNICODE (ANSI - importní filtr) - CSV(exportní filtr) - UTF-8. Není prostě správná relace pro formáty datumů, protože když je známý formát datumů, převádí se správně i do textových podob.



     Je proto pravděpodobné, že zavedeném formátu datumů s lomítky vše napravíte ačkoliv bude asi chyba v importním filtru (špatně rozpoznaný a přiřazený zdroj UTF-8). Takže nejprve zkontrolujte importní filtr pro zdroj, následně se pokuste nastavit formát datumů s lomítky a pak i exportní filtr. Jeslti je zdroj a výstup shodný musí být jak importní, tak exportní filtr také shodný.
     Nastavení formátu datumu : FORMÁT > BUŇKY > KARTA ČÍSLA > POLOŽKA DATUM > Zde přidejte vlastní s lomítky. Jinak bych doporučoval udělat screen obrazovek s exportními a importními filtry samostatně, tedy nejméně 3 ... import ze zdroje, import ze sekundárního CSV (otevřete v Calcu ten Vámi udělaný CSV) a nakonec exportní filtr. Ten budete muset zjistit asi reverzním otevřením svého výstupu.
     Tohle pak postněte sem nejlépe pomocí uložto.cz, leteckaposta.cz a podobná uložiště.


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 10. 8. 2016 21:59:05

Rogner
Člen
Registrace: 10. 8. 2016
Příspěvků: 5

Re: Problém se změnou v datumu

neutr napsal(a)

Já bych doporučil mrknout se na nastavení formátu datumu. Ty lomítka jsou dány právě externím formátem. CSV to prostě vezme jako text, takže vlastní CSV akceptuje to co je formátem sešitu. Formát s lomítky tam není, takže ho Calc nerozpozná. To znamená, že při manuálním převodu se to zobrazí sice dobře, ale je otázkou co je pak v tom formátu c.s.v.
     Když si utvoříte vlastní formát s lomítky, tak ho sešit jako daumovový formát rozpozná a zřejmě bude schopen i takto odeslat do CSV. Nejprve tedy jen CSV které pak následně převedete na formát UTF-8. Tam zkontrolujte co vám to vypíše. Pokud tam bude nesmysl, bude to podstata chyby. Když ne tak bude chyba v exportu do UTF-8.
     Jde totiž o to, že i sady UTF-8 jsou národními sadami, ale zdroj mají v UTF-16, respektive prakticky shodně s UNICODE (16 bit). U národních sad se očekává národní formát datumu, takže potom se asi stane, že datum coby číslo se řadí jinak do textové podoby. V každém případě to vypadá jako chyba ve formátu datumu mezi formáty RRRR MM DD (USA) a naším DD MM RRRR, a jinými standardy.
     Takže chyba je pravděpodobně ve špatném formátování už při převodu UTF-8 - UNICODE (ANSI - importní filtr) - CSV(exportní filtr) - UTF-8. Není prostě správná relace pro formáty datumů, protože když je známý formát datumů, převádí se správně i do textových podob.



     Je proto pravděpodobné, že zavedeném formátu datumů s lomítky vše napravíte ačkoliv bude asi chyba v importním filtru (špatně rozpoznaný a přiřazený zdroj UTF-8). Takže nejprve zkontrolujte importní filtr pro zdroj, následně se pokuste nastavit formát datumů s lomítky a pak i exportní filtr. Jeslti je zdroj a výstup shodný musí být jak importní, tak exportní filtr také shodný.
     Nastavení formátu datumu : FORMÁT > BUŇKY > KARTA ČÍSLA > POLOŽKA DATUM > Zde přidejte vlastní s lomítky. Jinak bych doporučoval udělat screen obrazovek s exportními a importními filtry samostatně, tedy nejméně 3 ... import ze zdroje, import ze sekundárního CSV (otevřete v Calcu ten Vámi udělaný CSV) a nakonec exportní filtr. Ten budete muset zjistit asi reverzním otevřením svého výstupu.
     Tohle pak postněte sem nejlépe pomocí uložto.cz, leteckaposta.cz a podobná uložiště.

Děkuju za pomoc, podívám se na to.

Offline

#6 11. 8. 2016 07:11:51

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 520

Re: Problém se změnou v datumu

zkuste otevřít toto csv https://dl.dropboxusercontent.com/u/146 … _utf_8.csv
Měl by se otevřít soubor s tímto obsahem:
datum
20.09.2015
22.09.2015


Pokud to bude jinak, máte nějakou chybu v importním filtru. Těžko říct jestli bude možná náprava. Ale pokud generujete csv pro někoho druhého, tak vás chyba v tomto fitru nemusí trápit, jakkoli to není fajn.

Pokud to bude správně pak děláte nějakou chybu při importu vašeho vlastního .csv. Musíte zkoušet :-)


LibreOffice 5.2.2.2

Offline

#7 11. 8. 2016 09:38:26

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

Re: Problém se změnou v datumu

Ještě něco málo na okraj. Dočetl jsem se, že uznávaný UTF formát jako standard musí být signován jako "UTF-8". Jakákoliv jiná podoba nemusí standardu odpovídat. Zejména tvary utf8, utf-8, Utf8 a podobně. Takže pozor na to - jen velká písmena, pomlčka a číslo 8.


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 11. 8. 2016 10:57:07

Rogner
Člen
Registrace: 10. 8. 2016
Příspěvků: 5

Re: Problém se změnou v datumu

ludviktrnka napsal(a)

zkuste otevřít toto csv https://dl.dropboxusercontent.com/u/146 … _utf_8.csv
Měl by se otevřít soubor s tímto obsahem:
datum
20.09.2015
22.09.2015


Pokud to bude jinak, máte nějakou chybu v importním filtru. Těžko říct jestli bude možná náprava. Ale pokud generujete csv pro někoho druhého, tak vás chyba v tomto fitru nemusí trápit, jakkoli to není fajn.

Pokud to bude správně pak děláte nějakou chybu při importu vašeho vlastního .csv. Musíte zkoušet :-)

Tak v Excelu se to zobrazilo správně. V LO jako
21.09.2019
23.09.2019

Jakto, že se změní to datum? Děkuji.

Offline

#9 11. 8. 2016 13:48:20

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

Re: Problém se změnou v datumu

Podívejte se do tabulky filtrů. Pro Calc tam jsou dva filtry import/export a ještě další jeden samostatný exportní filter. měl byste vidět toto pro Calc (jinak je tam 12 filtrů pro LO a u AOO to bude asi stejné).
MS Excel 2003 XML - LibreOffice Calc (.ods) import/export
UOF spreadsheet   - LibreOffice Calc (.ods) import/export
XHTML Calc File   - LibreOffice Calc (.ods) export
    Tabulku zavoláte NÁSTROJE > NASTAVENÍ XML FILTRŮ.


     Ověřením zjistíte alespoň to, že tam ty importní filtry máte. Potom můžete ještě konkrétní filtry vybrat a zvolit nabídku UPRAVIT. Tam zjistíte například odkud se to načítá a podobně.


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

#10 11. 8. 2016 15:57:41

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 520

Re: Problém se změnou v datumu

hm, taže to přidalo 4 roky a jeden den - zkuste se podívat do MOŽNOSTI - LibreOffice Calc - Výpočty (kolonka Datum) mělo by být nastaveno výchozí 12/30/1899. Vypadá to jako byste měl nastaveno 01/01/1904

EDIT: tak jsem to zkusil. Je to přesně tato chyba. Zkusil jsem si nastavit třetí možnost tedy 01/01/1904 (zřejmě nějaký starší datumový systém) a po otevření zkušebního csv je výsledek shodný s vaším. Takže heuréka :-)

Editoval ludviktrnka (11. 8. 2016 16:59:44)


LibreOffice 5.2.2.2

Offline

#11 11. 8. 2016 17:07:53

Rogner
Člen
Registrace: 10. 8. 2016
Příspěvků: 5

Re: Problém se změnou v datumu

ludviktrnka napsal(a)

hm, taže to přidalo 4 roky a jeden den - zkuste se podívat do MOŽNOSTI - LibreOffice Calc - Výpočty (kolonka Datum) mělo by být nastaveno výchozí 12/30/1899. Vypadá to jako byste měl nastaveno 01/01/1904

EDIT: tak jsem to zkusil. Je to přesně tato chyba. Zkusil jsem si nastavit třetí možnost tedy 01/01/1904 (zřejmě nějaký starší datumový systém) a po otevření zkušebního csv je výsledek shodný s vaším. Takže heuréka :-)

Super! To je ono! Tak na to bych bez vaší pomoci nepřišel. Díky moc neutr a ludviktrnka!

Offline

#12 11. 8. 2016 17:43:59

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 520

Re: Problém se změnou v datumu

Ještě tedy závěrečná poznámka k tomuto: importní filtr má evidentně nastven pevný formát 0=30.12.1899, takže pokud filtr nalezene datum 30.12.1899 přiřadí mu nulu, pak ovšem pokračuje nula do systému LO kde narazí na nastavení 0=1.1.1904 a to se také zobrazí. Pak to zase uložím do csv po při dalším otevření již filtr narazí na 1.1.1904 a přiřadí mu číslo (cca 1461) to číslo pak ve formátu 0=1.1.1904 zobrazí datum 2.1.1908 atd. Je tedy jasné že mezi filtrem a nastavením LO je nekompatibilita. Jinými slovy nastavení počátečního datumu se nepřenáší do filtru pro import CSV.


Tzn. csv se tvoří správně, je to pouze zápis zobrazeného textu, ale čtení csv je v tomto nastavení vždy chybné.

Editoval ludviktrnka (11. 8. 2016 17:50:42)


LibreOffice 5.2.2.2

Offline

#13 11. 8. 2016 20:08:54

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

Re: Problém se změnou v datumu

Tak jsem se podíval do nastavení pro Calc : NÁSTROJE > LIBRE OFFICE CALC > VÝPOČTY > DATUM. Když se tam podíváte uvidíte 3 možnosti - Vy máte zatrženu tu poslední možnost - 01.01.1904. Správně je pochopitelně ta první - výchozí. Ta druhá je pro StarCalc 1.0 - zřejmě stanovené před rokem 2000. Nevím proč je tam ta třetí možnost - ale také to bude kvůli nějakému načítání nějakých typů tabulkového procesoru.


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

Zápatí