Kategorie szkoleń | Egzaminy | Kontakt
  • 8
  • 10
  • 74

Czy istnieje program do sprawdzania poprawności CSV?

Sprawdzenia pod kątem poprawności np: ilość kolumn czy poprawność separatorów.

Rafał_Woźniak_69
  • Zapytał
  • @ Rafał_Woźniak_69 | 06.05.2016
    • laureat
    • 6
    • 1
    • 12
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedzi (8)

  • 0

Wydaje mi się, że taki program można napisać w VBA.

Jeśli chodzi oczywiście o coś takiego.

Tworzysz import pliku CSV do Excela i sprawdzasz co jest w jakim miejscu.

Michał_Gwiazdonik
  • Odpowiedział
  • @ Michał_Gwiazdonik | 10.05.2016
    • lider
    • laureat
    • 13
    • 9
    • 51
  • 0

Witam.

Tak jak napisał Michał, można napisać program. Ale z uwagi, iż rodzajów pliku CSV może być bardzo dużo, co jest zależnie od kodowania, separatorów itp. to do podejrzenia poleciłbym Notepad ++.

Przemysław_Płaczek
  • Odpowiedział
  • @ Przemysław_Płaczek | 10.05.2016
    • 3
    • 6
    • 1
  • 0

Może podrzuć plik, który chciałbyś sprawdzić (oczywiście z testowymi danymi).

 

Michał_Gwiazdonik
  • Odpowiedział
  • @ Michał_Gwiazdonik | 11.05.2016
    • lider
    • laureat
    • 13
    • 9
    • 51
  • 0

Kwestia jest taka, że plików do sprawdzenia mam ponad 50, a w niektórych ilość rekordów przekracza 200 tysięcy.

Rafał_Woźniak_69
  • Odpowiedział
  • @ Rafał_Woźniak_69 | 13.05.2016
    • laureat
    • 6
    • 1
    • 12
  • 0

Czy wszystkie mają lub powinny mieć taką samą strukturę danych?

Michał_Gwiazdonik
  • Odpowiedział
  • @ Michał_Gwiazdonik | 13.05.2016
    • lider
    • laureat
    • 13
    • 9
    • 51
  • 0

Każdy z plików to inny zestaw danych eksportowany z niszowej bazy, a procedura eksportująca czasami się myli i zamiast 20 kolumn w CSV-ce jest 21. I takich przypadków jest 3 na 100 tyś rekordów.

Rafał_Woźniak_69
  • Odpowiedział
  • @ Rafał_Woźniak_69 | 14.05.2016
    • laureat
    • 6
    • 1
    • 12
Komentarze
W takim razie trzeba chyba dopracować eksport z bazy żeby nie było błędów.

Chociaż z drugiej strony moim zdaniem wystarczyłoby po prostu sprawdzać ile jest kolumn zawierających dane po imporcie pliku do Excela. Czyli trzeba by sprawdzić czy np. kolumna 21, 22 i 23 (22 i 23 dla pewności) zawierają komórki pełne. Jeśli tak to znaczy że eksport się nie powiódł.

Funkcja: =ILE.NIEPUSTYCH(U:W) jeżeli wynik będzie większy niż 0 to znaczy że eksport się nie powiódł.

Funkcję można wrzucić do VBA jako worksheetfunction

Bez konkretnego przykładu ciężko znaleźć optymalne rozwiązanie ;)
Skomentował : @ Michał_Gwiazdonik ,14.05.2016
  • 13
  • 9
  • 51
  • 0

Witam.

Jeżeli wiemy ile powinno być kolumn, np 10, to po zaimportowaniu wystarczy ustawić się w kolumnie 11 i Ctrl + Strzałka w dół. Zatrzyma się na błędnych wierszach. Ten proces oczywiście można oprogramować dla wszystkich plików.

  • Odpowiedział
  • @ | 30.05.2016
  • TRENER ALTKOM AKADEMII
  • 0

Przykładowy wpis w pliku wygląda tak:


"1111"|"aa"|""|""|""|"111.11"|""|""|"0.00"|"0"|""|""|""|""|""|"aaaaaaaaaaaaaaaa, aaaaa aaaaaaaaaaaa"|"0"|""|""|""|""|"0"|"0"|"0"|"0"|""|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|""|"0"|"0"|"0"|"0"|"0"|""|""|"0"|"0"|"0"|"0"|"0"|"0"|"0"|""|""|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|""|""|"1111-11-11 11:11:11.111"|"aaaaaaaa"|""|""|""|""|""
"2222"|"bb"|""|""|""|"222.22"|""|""|"0.00"|"0"|""|""|""|""|""|""|"0"|""|""|""|""|"0"|"0"|"0"|"0"|""|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|""|"0"|"0"|"0"|"0"|"0"|""|""|"0"|"0"|"0"|"0"|"0"|"0"|"0"|""|""|"0"|"0"|"0"|"0"|"0"|"0"|"0"|"0"|""|""|"2222-22-22 22:22:22.222"|"bbbbbbbb"|""|""|""|""|""

Trudność polega na tym, że ostatnie kolumny w pliku CSV są puste (choć nie zawsze), więc importując dane do arkusza kalkulacyjnego ostatnie komórki są również puste.

Rafał_Woźniak_69
  • Odpowiedział
  • @ Rafał_Woźniak_69 | 01.06.2016
    • laureat
    • 6
    • 1
    • 12
Komentarze
Rafale, jak zaimportowałem do Excela powyższe dane (z ogranicznikiem "|"), to owszem niektóre kolumny okazały się puste. Czy to jest problem? Czy puste komórki w kolumnie są problemem? Jeśli w danej kolumnie pojawiają się dane to znaczy, że kolumna jest używana. Tak do końca nie rozumiem Twojego problemu. Pozdrawiam. Michał.
Skomentował : @ Michał_Gwiazdonik ,01.06.2016
  • 13
  • 9
  • 51