Jak mogę przekonać Excela do importowania mojego pliku CSV ?
Plik
Mam plik podający się za CSV. Zawiera 10 pól, z których wszystkie są otoczone podwójnymi cudzysłowami (tak, nawet daty i liczby). 2 lub 3 z tych pól zawierają przecinki . Ale dane w tych polach są również otoczone cudzysłowami.
Problem
Kiedy próbuję otworzyć ten plik, Excel całkowicie ignoruje cytaty i zakłada, że są one częścią danych.
Dzieli zatem pola zawierające przecinki na wiele kolumn.
To źle, przynajmniej dla mnie.
Przykładowe dane
„20051”, „”, „30 września 2009 02:53:23”, „SOMETEXT”, „”, „5000”, „2000000”, „2008 - 99999 - -99999, 2008 - unk - unk”, „191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, 193 - SOMETEXT - SOMETEXT, 194 - SOMETEXT - SOMETEXT, 195 - SOMETEXT - SOMETEXT, 196 - SOMETEXT - SOMETEXT "," 45 - SOMETEXT - EXTET - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT ” „20052”, „SOMETEXT”, „2009 Sep 08 07:56:50”, „SOMETEXT”, „”, „50000”, „5000000”, „2007 - 99999 - 99999”, „146 - SOMETEXT - SOMETEXT, 145 - SOMETEXT - SOMETEXT, 147 - SOMETEXT - SOMETEXT, 148 - SOMETEXT - SOMETEXT ”,„ 103 - SOMETEXT - SOMETEXT, 1131 - SOMETEXT - SOMETEXT ”
Co próbowałem?
Użyłem narzędzia importu do określenia ograniczników i tym podobnych, ale nie wydaje się to pomocne.
Próbowałem zmienić „Ogranicznik tekstu” z podwójnego cudzysłowu na „{none}” iz powrotem. Wydaje się, że wpływa to tylko na pierwszą kolumnę. Byłoby to rozsądne, gdyby można było kliknąć inne kolumny i zastosować to ustawienie do każdej z nich. Ale tak nie jest i wydaje się, że ma to działać w różnych kolumnach.
Co jeszcze mogę spróbować?
źródło
Odpowiedzi:
Właśnie wypróbowałem szybki test, który odtworzył twój problem.
Utworzyłem 1-wierszowy plik CSV w programie Word (który wykorzystuje inteligentne cytaty) jako test.csv „123”, „4,5,6” i otworzyłem go w programie Excel zgodnie z opisem.
Spróbuj zamienić „i” na „
Po pobraniu próbki zauważyłem, że Excel nie lubi odstępów między polami
np. zamiast
chcesz
przyzwoita zamiana wyrażeń regularnych powinna być w stanie sobie z tym poradzić
(znaki potoku tylko dla wskazówek wizualnych)
Lub po prostu zmodyfikuj kod .Net, jeśli masz do niego dostęp ;-)
Ponadto, jak zauważył Arjan , może być również konieczne przekonwertowanie pliku z UTF-8 na ANSI, aby komórka A1 nie zawierała BOM i otaczających qoutes.
Natknąłem się na CSV zakodowane w Catch 22 ANSI nieobsługujących znaków międzynarodowych i CSV zakodowane w UTF, które nie są obsługiwane przez Excel; i nie znalazłem rozwiązania podczas utrzymywania CSV. Jeśli wymagana jest obsługa znaków międzynarodowych, formaty XML (lub natywne XLS) wydają się jedyną drogą - kosztem prostoty.
źródło
Ten problem nęka mnie od wielu lat. Właśnie odkryłem rozwiązanie, o którym wspomniano w powyższych odpowiedziach, ale nie zostało to wyraźnie określone.
To miejsce po przecinku!
Nie importuje się do programu Excel;
Podczas
Pracuje!
źródło
Możesz także wypróbować CSVEd, który jest bezpłatny.
źródło
Jeśli przypadkowo nie używasz inteligentnych cytatów, takich jak sugerowany lumbarius , i zakładasz , że korzystasz z systemu Windows: może to wynikać z ustawień regionalnych. Po dwukrotnym kliknięciu lub użyciu opcji Plik »Otwórz, program Excel nie pyta o szczegóły, ale po prostu używa tych ustawień.
Mimo to ręczne wywoływanie funkcji importowania (tak jak ty) powinno działać, więc wątpię, aby zmiana ustawień regionalnych pomogła ...
źródło
Czy sprawdziłeś kodowanie znaków w swoim pliku? Spróbuj ustawić kodowanie znaków na UTF-8.
Za pomocą notatnika2 możesz zmienić kodowanie znaków.
źródło
Dodam tylko do odpowiedzi tutaj: skup się na PRZESTRZEŃ po WSPOMNIENIU w swoich plikach CSV. Excel nie lubi tych, jeśli zacytowałeś pola w swoich danych.
Polubienia programu Excel (4 kolumny danych):
Ale nie lubi (3 kolumny danych):
To lubi (3 kolumny danych):
źródło
Natknąłem się dziś na ten problem i znalazłem rozwiązanie, które zadziałało dla mnie.
Moje środowisko / kontekst: Mam stronę internetową z niektórymi (formalnymi) pytaniami, które zawierają zarówno cudzysłowy, jak i przecinki. Zarówno pytania, jak i odpowiedzi są wyciągane z bazy danych i zapisywane w pliku Excel w celu raportowania.
Miałem ten sam problem opisany powyżej: pytania zawierające zarówno cudzysłowy, jak i przecinki były dzielone na wiele kolumn w programie Excel.
Na moje potrzeby załatwiłem dwa pojedyncze cytaty zamiast podwójnego cudzysłowu .
-> na stronie internetowej dwa pojedyncze cytaty wyglądają jak podwójny cytat dla odwiedzających witrynę
-> W pliku Excel ponownie dwa pojedyncze cytaty wyglądają jak podwójny cytat dla użytkowników przeglądających dane raportu
Zdaję sobie sprawę, że to rozwiązanie nie będzie działać dla wszystkich, ale mam nadzieję, że pomoże komuś.
źródło
Byłem w stanie to zrobić za pomocą:
co daje cztery kolumny:
źródło
Inny sposób na zrobienie tego:
W ten sposób możesz ustawić prawidłowe kodowanie, takie jak UTF-8, które wiele (wszystkich?) Wersji programu Excel nie obsługuje poprawnie bez BOM i nie musisz się martwić o wyrażenie regularne, które może zastąpić tekst w polu i nie zauważasz tego.
źródło