Plik .csv i liczby

Użytkowanie arkusza kalkulacyjnego
Thalgo13
Posty: 13
Rejestracja: wt wrz 03, 2013 10:59 am

Plik .csv i liczby

Post autor: Thalgo13 »

Witam,

mam do dyspozycji skrypt (w Pythonie), który po przetworzeniu bardzo specyficznych danych (obliczenia czasów trwania audycji) wypuszcza plik .csv. Treści zawarte w tymże pliku muszę z kolei włożyć do szablonu pewnego sprawozdania podsumowującego te czasy. I tu zonk - nic nie mogę zsumować bo csv otwiera się jako tekst... Co można z tym zrobić?
PS. Znaleziony tu na forum przepis (dziwny...) ze zmienianiem języka na "Angielski USA" u mnie nie zadziałał - LibreOffice 4.1.1.2.

pozdrawiam
Thalgonis
LibreOffice 3.5.6.2, MacOS 10.8
Raknor
Posty: 509
Rejestracja: pt lut 19, 2010 3:32 pm
Lokalizacja: Warszawa
Kontakt:

Re: Plik .csv i liczby

Post autor: Raknor »

Strzelam, może Twój problem rozwiąże funkcja WARTOŚĆ.
LibreOffice 5.1.6 (64bit)
Kubuntu 16.04 (64bit)
Wszelkie uwagi lub chęć udziału przy polonizacji LibreOffice proszę kierować na adres: pol_lo at pro.wp.pl
Thalgo13
Posty: 13
Rejestracja: wt wrz 03, 2013 10:59 am

Re: Plik .csv i liczby

Post autor: Thalgo13 »

Faktycznie - funkcja WARTOŚĆ zadziałała. Dzięki.
Ale w tzw. międzyczasie znalazłem na sieci ciekawą metodę:

1. Zaznacz komórki
2. LewyKlik/Formatuj komórki...
3. Zmień format komórki na liczbę
4. menu: Edycja/Znajdź i zamień
5. ustaw szukany ciąg na: .*
6. ustaw ciąg na jaki ma nastąpić zamana na: &
7. click: Więcej opcji
8. check: Tylko bieżące zaznaczenie
9. check: Wyrażenia regularne
10. click: zamień wszystko

Powyższa metoda jest chyba o tyle wygodniejsza w moim przypadku, że po otwarciu pliku .csv oznaczam kolumny z wartościami, które chcę przekonwertować na godziny i po chwili mogę już wykonać pełne kopiowanie w odpowiednie miejsca do arkusza sprawozdawczego.
LibreOffice 3.5.6.2, MacOS 10.8
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Plik .csv i liczby

Post autor: Jan_J »

Thalgo13 pisze:[...]Znaleziony tu na forum przepis (dziwny...) ze zmienianiem języka na "Angielski USA" u mnie nie zadziałał - LibreOffice 4.1.1.2
To jest przepis na wymuszenie traktowania ciągów cyfr z kropką (1.23) jako liczb. Zamiana .* --> & nie zmienia ciągu znaków, a tylko wymusza ponowne przeliczenie arkusza przy wymaganiu, by wynik był liczbą. Więc chyba nie o konflikt kropka <--> przecinek chodziło.
Swoją drogą przy imporcie powinno wystarczyć oznaczenie kolumny jako Standard. Jeżeli wtedy importuje się jako tekst, to znaczy, że zapis jest w jakimś sensie "dziwny". Co łatwo podejrzeć, w końcu csv jest czystym tekstem. Można by dostać jedną linijkę wyjętą godnym zaufania edytorem (np. notepad++)?
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Thalgo13
Posty: 13
Rejestracja: wt wrz 03, 2013 10:59 am

Re: Plik .csv i liczby

Post autor: Thalgo13 »

Właśnie ten "Standard" nie zadziałał...
Nie ma na maka Notepada++ :-) Może TextWrangler jest godnym zaufania? :-)
LibreOffice 3.5.6.2, MacOS 10.8
cooker0
Posty: 6
Rejestracja: sob lip 27, 2013 12:26 pm

Re: Plik .csv i liczby

Post autor: cooker0 »

Ale w sensie, że o co chodzi? :P
Po otwarciu Calc miał każdy wiersz pliku CSV w jednej komórce? Czy dobrze dzielił na komórki, ale tylko liczby traktował jako tekst? Zwykle wszystko da się ustawić na etapie kodowania znaków i wskazywania znaku dzielącego komórki. Jeśli problemem były tylko kropki wystarczy zamienić na przecinki i już.
LibreOffice 4.1, Windows 7 HP x64
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Plik .csv i liczby

Post autor: Jan_J »

Thalgo13 pisze:[...] jest godnym zaufania?
Każdy, który sam nie zmienia kodowania ani nie robi żadnej autokorekty.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Thalgo13
Posty: 13
Rejestracja: wt wrz 03, 2013 10:59 am

Re: Plik .csv i liczby

Post autor: Thalgo13 »

cooker0 pisze:Ale w sensie, że o co chodzi? :P
Po otwarciu Calc miał każdy wiersz pliku CSV w jednej komórce? Czy dobrze dzielił na komórki, ale tylko liczby traktował jako tekst? Zwykle wszystko da się ustawić na etapie kodowania znaków i wskazywania znaku dzielącego komórki. Jeśli problemem były tylko kropki wystarczy zamienić na przecinki i już.
W sumie chodziło o to, że po eksporcie do csv, w tymże pliku wszystkie komórki zawierające jakiekolwiek dane były sformatowane jako "@" (tak wyświetla "Formatuj komórki..."). Powinno być niestety w takiej formie (kolumnami) A: tekst; B: data; C: godzina; D: godzina; E: godzina.
Samo wyświetlanie zawartości arkusza jest prawidłowe - tzn. kolumny są tak podzielone jak powinny.

pozdrawiam
Thalgonis
LibreOffice 3.5.6.2, MacOS 10.8
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Plik .csv i liczby

Post autor: Jan_J »

To znaczy, atki (“małpki”) były w tym Pythonowym CSV, czy po eksporcie z Calca? Dla rozwiązania ważna jest postać wejścia.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Thalgo13
Posty: 13
Rejestracja: wt wrz 03, 2013 10:59 am

Re: Plik .csv i liczby

Post autor: Thalgo13 »

Jan_J pisze:To znaczy, atki (“małpki”) były w tym Pythonowym CSV, czy po eksporcie z Calca? Dla rozwiązania ważna jest postać wejścia.
Nie, "małpki" pokazały się PO otwarciu pliku .csv ("wyprodukowanego" przez pythona) w Calcu LibreOffice. Ustawienia otwarcia są takie:
Załączniki
Zrzut ekranu Calc.jpg
LibreOffice 3.5.6.2, MacOS 10.8
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Plik .csv i liczby

Post autor: Jan_J »

Więc cały czas pozostaje pytanie: jak ten plik wygląda w środku *naprawdę*.
Trzeba go obejrzeć nieformatującym edytorem tekstowym. W szczególności zaczynam podejrzewać, że daty są w nim ujęte w cudzysłowy.
Nie mam Mac-a, nie wiem jaki tam jest domyślny prosty edytorek typu notatnik. W konsoli można by zlecić cat plik.csv i obejrzeć wydruk, ale zapewne odpalić edytor będzie Ci prościej.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Thalgo13
Posty: 13
Rejestracja: wt wrz 03, 2013 10:59 am

Re: Plik .csv i liczby

Post autor: Thalgo13 »

Jan_J pisze:Więc cały czas pozostaje pytanie: jak ten plik wygląda w środku *naprawdę*.
Trzeba go obejrzeć nieformatującym edytorem tekstowym. W szczególności zaczynam podejrzewać, że daty są w nim ujęte w cudzysłowy.
Nie mam Mac-a, nie wiem jaki tam jest domyślny prosty edytorek typu notatnik. W konsoli można by zlecić cat plik.csv i obejrzeć wydruk, ale zapewne odpalić edytor będzie Ci prościej.
W mac OSx jest normalny terminal, komenda, którą mi podałeś wyświetla coś takiego (oczywiście to fragment - górna cześć pliku):

Komp:Folder User$ cat out.csv
CV – wywiad – Bracia;2013-7-5;19:30:26;19:49:32;00:19:06
;2013-7-6;10:38:38;10:57:44;00:19:06
;2013-7-6;18:20:45;18:39:51;00:19:06
;2013-7-7;10:40:29;10:59:35;00:19:06
;2013-7-10;01:00:07;01:19:13;00:19:06
;2013-7-12;01:03:00;01:22:06;00:19:06
CV – wywiad – M. Siudym;2013-7-12;19:30:03;19:46:33;00:16:30
;2013-7-13;10:41:51;10:58:21;00:16:30
;2013-7-13;18:20:59;18:37:29;00:16:30
;2013-7-14;10:40:00;10:56:30;00:16:30
;2013-7-17;01:00:55;01:17:25;00:16:30
LibreOffice 3.5.6.2, MacOS 10.8
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Plik .csv i liczby

Post autor: Jan_J »

Thalgo13 pisze:W mac OSx jest normalny terminal[...]
Tak, MacOS X jest (w pewnym uproszczeniu) uniksopodobnym systemem z linii BSD. Dlatego wspomniałem o cat.

W moich systemach (jak w stopce, plus Libre 4.1 Portable na Windows 7) Twoje dane wczytują się poprawnie. Daty i czasy są rozpoznawane, da się na nich operować.
Za to zapis csv przy domyślnych ustawieniach (w Libre) bierze wszystkie wartości w cudzysłowy. Aby tego uniknąć, warto przy eksporcie oznaczyć [x] Edytuj ustawienia filtra.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
mitek
Posty: 69
Rejestracja: czw lip 15, 2010 11:52 pm

Re: Plik .csv i liczby

Post autor: mitek »

A można jakoś zapisać tak CSV by nie było w nim cudzysłowów ani apostrofu by tekst był traktowany jak liczby?
LibreOffice 6.1.2.1 na Windows 10
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Plik .csv i liczby

Post autor: Jan_J »

Można. W formularzu zapisu [x] edytuj ustawienia filtra; w starszych wersjach był format "tekst zakodowany".
Przy zapisie wymuszanym programowo (przez funkcję albo makro) da się ustawić programowo właściwości filtra jako opcję funkcji zapisującej.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ