Najprostszym sposobem na otwarcie pliku CSV z przecinkami w programie Excel

196

Pliki CSV są automatycznie kojarzone z programem Excel, ale kiedy je otwieram, wszystkie wiersze są w zasadzie w pierwszej kolumnie, tak jak to:

wprowadź opis zdjęcia tutaj

Prawdopodobnie dlatego, że gdy Excel myśli o „wartościach oddzielonych przecinkami”, tak naprawdę szuka innego separatora (myślę, że to średnik, ale to nie jest ważne).

Teraz, gdy już otworzyłem ten plik w programie Excel, czy jest przycisk lub coś, co mówi mu „ponownie otwórz ten plik i użyj przecinka jako separatora”?

Wiem, że mogę zaimportować dane do nowego arkusza itp., Ale proszę o pomoc w sytuacji, w której mam już plik CSV z przecinkami i chcę go otworzyć w programie Excel bez tworzenia nowego skoroszytu lub przekształcania oryginalny plik.

Borek Bernard
źródło
2
Z wielu powodów, poza ogranicznikiem, bardzo złym pomysłem jest zezwolenie Excelowi na otwieranie CSV (lub dowolnego innego zwykłego pliku tekstowego) przy użyciu ustawień domyślnych. W zależności od pliku źródłowego spowodujesz uszkodzenie danych. Napisałem tutaj szczegółowy artykuł na ten temat: theonemanitdepartment.wordpress.com/2014/12/15/…
Wouter
4
Tak trudno zrozumieć, co się dzieje w Microsoft, że Excel nadal nie może otwierać plików CSV w ten sposób. Łamie również liczby itp. W zadziwiający sposób. Nawet JavaScript domyślnie tego nie konwertuje źle.
usr
Przykro mi, że grób wykopalisk .. ale istnieje bardzo duża szansa, że ​​fakt, że w pierwszym wierszu nie ma przecinków, powoduje, że Excel
przestaje
Wystarczy użyć ;jako ogranicznika, a otwarcie pliku podwójnym kliknięciem spowoduje rozdzielenie go na kolumny w MS Excel.
Hrvoje T

Odpowiedzi:

179

Przejdź do danych karty i zaznacz tekst na kolumnach pod narzędzi danych następnie wybierz ograniczonych i uderzył obok . Następnie wybierz przecinek jako separator i naciśnij przycisk Zakończ

wprowadź opis zdjęcia tutaj

Raystafarian
źródło
55
I musisz to zrobić za każdym razem po dwukrotnym kliknięciu * .csv w Eksploratorze Windows? Jakoś nie mogę uwierzyć, że nie ma prostszego sposobu, zwłaszcza jeśli Excel kojarzy się z rozszerzeniem pliku * .csv.
Borek Bernard
3
Zwykle pojawia się kreator, który wymaga wykonania tego procesu po otwarciu pliku, ale jeśli nie, możesz to zrobić w ten sposób. Możesz także przejść do danych - uzyskać dane zewnętrzne - z tekstu i uruchomić stamtąd kreatora importu.
Raystafarian
13
Na tym polega problem, nie chcę importować żadnych danych, otwieram doskonale poprawny plik CSV, z którym Excel nawet się skojarzył. Ale OK, jeśli tak jest, prawdopodobnie będę musiał znaleźć coś innego do edycji plików CSV.
Borek Bernard
2
Tak, jest to PITA, to samo tutaj z Excel 2003. Muszę również użyć Data \ Import. Sam w sobie nie jest to problem, ale importuję je tylko dwa razy w roku, więc regularnie zapominam i próbuję najpierw File / Open ;-(
Jan Doggen
1
@gstackoverflow możesz, po prostu wybierz kolumnę A, a następnie zrób to.
Tom
162

Umieszczenie:

sep=<delimeter>

ponieważ w pierwszym wierszu pliku csv program Excel automatycznie użyje tego znaku jako separatora zamiast domyślnego przecinka.

Na przykład:

sep=|
COLUMN1|COLUMN2
data,1|data2
...

spowoduje użycie potoku (|) jako ogranicznika zamiast przecinka, bez konieczności uruchamiania użytkownika przez kreatora importu.

Krivda
źródło
7
Aby to działało w programie Excel 2013, należy usunąć zaznaczenie Use system separators wOptions>Advanced
Michael polu
1
Czy potrafisz zdefiniować separator dziesiętny w podobny sposób? Chcę, żeby tak było .np., 1.5Ale w moim systemie .jest separator dla tysięcy.
CGFoX
2
Działa to dla mnie, nawet jeśli zaznaczyłem opcję „Użyj separatorów systemowych”. Żadne inne rozwiązanie nie działało dla mnie.
awe
Potwierdzenie, że działa to w programie Excel 2016 z zaznaczoną opcją „Użyj separatorów systemowych”. To jest świetne.
Bas
Idealne rozwiązanie głupiego problemu! (Excel powinien być w stanie rozpoznać zastosowany separator, a przynajmniej zapytać mnie i pozwolić mi zdecydować!) Dalej : czy można zmusić Excela do użycia również innego zestawu znaków ? Wszystkie moje pliki CSV są w UTF-8, ale Excel próbuje je otworzyć jako „Macintosh”, co stwarza dla mnie wiele problemów !!
Qualbeen
51

Nie wiem, czy udało ci się rozwiązać ten problem, ale miałem też ten sam problem i rozwiązałem go po kilku dochodzeniach.

Okazuje się, że był to problem związany z otoczeniem;

Przejdź do panelu sterowania -> Ustawienia regionalne -> Ustawienia zaawansowane i zmień separator listy na przecinek .

Mój został ustawiony na średnik dwukropka dla Południowej Afryki po zmianie na Windows 8. Po zmianie na przecinek wszystkie moje pliki CSV są poprawnie otwierane w programie Excel 2013.

Mam nadzieję że to pomoże.

Dodatkowy komentarz:
Użyłem tych samych kroków co Lèse majesté, ale zmieniłem również symbol dziesiętny z przecinka (,) na kropkę (.) I naprawiłem mój problem.

Wynika to z tego, że domyślnie system Windows 8 używa przecinka jako symbolu dziesiętnego, a program Excel jest zdezorientowany, gdy musi używać obu znaków jako separatora i symbolu dziesiętnego.

Maxwell Maake
źródło
Już ustawione w ten sposób i ignorowane przez program Excel. Nadal nie rozdziela się przecinkami.
Elliot
Ir prawdopodobnie wymaga co najmniej wylogowania, zalogowania, aby zadziałało.
Gert van den Berg
Pracowałem dla mnie po zmianie symbolu dziesiętnego, dzięki!
James Cameron
1
Cóż, nadal uważam, że to oburzenie, że Excel używa ustawień regionalnych do odczytywania formatu pliku!
awe
Dzięki. To ustawienie rozwiązało dla mnie ogromny problem w pracy. Excel jest taki głupi!
Moha
19

To działało dla mnie - jest to kombinacja niektórych odpowiedzi tutaj.

(Uwaga: Mój komputer używa czeskich ustawień formatu, które formatują liczby w ten sposób: 1 000,00tzn. Przecinek jest używany jako separator dziesiętny, a spacja jako separator tysięcy. Domyślnym separatorem listy w ustawieniach systemu jest ;.)

  1. Zmieniłem separator list systemowych na przecinek w Region -> Dodatkowe ustawienia
  2. W programie Excel 2013 poszedłem do Opcje -> Zaawansowane i niezaznaczone Użyj separatorów systemowych (w sekcji „Opcje edycji”, która jest pierwszą sekcją)
  3. Ustawić separator dziesiętny w programie Excel do. i separator do tysięcy ,(separator tysięcy prawdopodobnie nie ma znaczenia, ale chciałem, aby to zgodne z formatowaniem USA)

Alternatywą dla kroków 2 + 3 byłaby zmiana tych ustawień w ustawieniach systemu (krok 1), ale generalnie chcę mieć sformatowane liczby zgodnie z czeskimi ustawieniami narodowymi.

Wady : w Excelu muszę teraz wprowadzać liczby dziesiętne przy użyciu ustawień regionalnych USA, tj. Używając kropki zamiast przecinka. To wydaje się trochę nienaturalne, ale dla mnie jest to akceptowalny kompromis. Na szczęście klawisz przecinka na moim klawiaturze numerycznej automatycznie zmienił się w klawisz kropki (i tylko w programie Excel - inne aplikacje nadal wyświetlają przecinek).

Borek Bernard
źródło
Nie działa z
Excelem
@LeosLiterak: Właśnie wypróbowałem to w programie Excel 2013 i zadziałało.
Sk8erPeter
10

Najwyraźniej program Excel używa ustawienia regionalnego systemu Windows 7 jako domyślnego separatora dla plików CSV (który domyślnie jest zakładką). Możesz zmienić to ustawienie w ten sposób .

Nie wiem jednak, jakie to będzie miało inne konsekwencje. Podejrzewam, że jeśli wszystkie pliki CSV na twoim komputerze są rozdzielone przecinkami, nie powinno być żadnych problemów. Ale jeśli masz inny (prawdopodobnie Microsoft) program, który również korzysta z plików CSV i zwykle używa plików CSV sformatowanych przy użyciu innego separatora, może to być problematyczne.

Na przykład, jeśli, powiedzmy, Outlook używa CSV rozdzielonych tabulatorami do importowania / eksportowania kontaktów, a otrzymujesz takie CSV ze źródła zewnętrznego (Gmail, inny komputer, cokolwiek ...), to zmiana tego ustawienia ogólnosystemowego może uniemożliwić otwarcie Outlooka te CSV rozdzielone tabulatorami.

Lèse majesté
źródło
3
Próbowałem zmienić moje „ustawienia regionalne i językowe”> Formaty> Ustawienia dodatkowe> Separator list, jednak nie miało to wpływu na otwieranie plików CVS w Excelu. Niestety nie jest to rozwiązanie.
Borek Bernard
2
To samo tutaj z Excelem 2010 i Windows 7. To było już, w moich ustawieniach, a Excel nadal domyślnie tabuluje.
rhsatrhs
Masz pomysł, czy możemy wpisać 2 różne znaki w tym polu w Panelu sterowania? Np. ;,Zezwalać na oba znaki jako separatory listy?
Dzhuneyt,
7

LibreOffice Calc ma bardzo zaawansowany filtr csv, który pozwala wybierać separatory, formaty i kodowanie. Pracuję intensywnie z danymi w różnych formatach i bardzo często muszę wysyłać te dane w formacie Excel do użytkowników. Używam LibreOffice Calc do konwersji plików csv do pożądanego formatu, a następnie zapisuję jako xls.

To może nie odpowiedzieć, jak to zrobić łatwo w Excelu, ale odpowiada, jak to zrobić łatwo, zwłaszcza, że ​​OP w komentarzach sugeruje, że użycie czegoś innego niż excel byłoby akceptowalną opcją.

fsando
źródło
4

Excel 2010 - oprócz sprawdzania regionalnych ustawień zaawansowanych, sprawdź także ustawienia zaawansowane programu Excel:

Plik -> Opcje -> Zaawansowane

Upewnij się, że opcja „Użyj separatorów systemowych” jest zaznaczona.

użytkownik295069
źródło
2
Lub, oczywiście, upewnij się, że nie jest zaznaczone, czy chcesz zaimportować coś innego niż ustawienia regionalne. :-) Ale: dobrze wiedzieć, że to ustawienie istnieje; Nigdy wcześniej o tym nie słyszałem.
Arjan
1
Te ustawienia wydają się wpływać tylko na separatory liczb, a nie na separator listy.
Borek Bernard
3

Przewodnik dla zakłopotanych krok po kroku:

  1. Naciśnij klawisz Windows
  2. Wpisz „ intl.cpl ” i naciśnij Enter.
  3. Kliknij „ Ustawienia dodatkowe ”.
  4. Przejdź do zakładki „ Liczby ”:
  5. Zmień symbol dziesiętny na kropkę .
  6. Zmień „ Symbol grupowania cyfr ” na spację .
  7. Zmień „ List Separator ” na przecinek .
  8. Przejdź do zakładki „ Waluta ”:
  9. Zmień symbol dziesiętny na kropkę .
  10. Zmień „ Symbol grupowania cyfr ” na spację .
Anthony Faull
źródło
To dobrze, jeśli zawsze używasz samodzielnie utworzonych plików .CSV. Ale to nie działa, gdy otrzymasz plik od kogoś, kto użył przecinka jako separatora.
stevenvh
0

Zmiana separatora dziesiętnego na. (kropka) i separator listy do, (przecinek) pomogły utrzymać CSV w normalnym widoku w Excelu na komputerach norweskich.

Madhu Rijal
źródło
Również w moim bułgarskim
Петър Петров
0

W moim systemie ustawienia zostały już ustawione zgodnie z sugestiami innych tutaj (symbol dziesiętny ustawiony na. (Kropka) i separator listy ustawiony na (przecinek) ALE wciąż miałem problemy z wyświetlaniem podczas importowania pliku CSV wyeksportowanego z innej aplikacji .

Po krótkiej próbie i błędach znalazłem rozwiązanie, które otwiera każdy plik CSV we właściwym widoku.

Oto, co działało dla mnie w programie Excel 2013 z systemem Windows 8:

Panel sterowania> Zegar, język i region> Region> Ustawienia dodatkowe> Separator list ustawiony na ,; (przecinek ORAZ średnik) -> kliknij „zastosuj”, a następnie sprawdź, czy to wystarczy.

learn_by_doing
źródło
0

W Excelu, zakładka DANE , w podsekcji Uzyskaj dane zewnętrzne kliknij „ Z tekstu ” i zaimportuj plik CSV w Kreatorze.

Walter
źródło
0

Wiem, że odpowiedź została już zaakceptowana, ale jednym z elementów do sprawdzenia jest kodowanie pliku CSV. Mam skrypt Powershell, który generuje pliki CSV. Domyślnie kodował je jako UCS-2 Little Endian (na Notepad ++). Otworzyłby plik w jednej kolumnie w programie Excel i musiałbym wykonać konwersję tekstu na kolumny, aby podzielić kolumny. Zmiana skryptu na kodowanie tego samego wyniku co „ASCII” ( UTF-8 bez BOM dla Notepad ++) pozwoliła mi otworzyć plik CSV bezpośrednio z rozdzielonymi kolumnami. Możesz zmienić kodowanie CSV również w Notepad ++ .

  • Kodowanie menu > Konwertuj na UTF-8 bez BOM
  • Zapisz plik CSV
  • Otwórz w programie Excel, kolumny powinny być podzielone
Shayne Efraim
źródło
ASCII i UTF-8 bez BOM to nie to samo. W rzeczywistości ASCII pasuje do UTF-8 bez BOM bezproblemowo, ponieważ UTF-8 ma to ujęte w standardzie. Gdy tylko pojawią się znaki nieobjęte ASCII, może po prostu wypisać ANSI lub UTF-8 ... Jeśli
wypisujesz
0

W nowszej wersji Excel 2010 możesz otworzyć (menu: Plik, Otwórz lub Ctrl-O) plik .CSV jako plik tekstowy. Następnie bezpośrednio otrzymujesz kreator, tak samo prosty jak w LibreOffice Calc, w którym możesz wybrać właściwy separator pola.

wprowadź opis zdjęcia tutaj

Działa to tylko z plikami z odpowiednim rozszerzeniem .CSV. Moja aplikacja miała generować wyjście CSV z rozszerzeniem .ACC, a próba otwarcia tego w programie Excel za pomocą powyższej metody prowadzi do zupełnie innych rogów programu Excel :-(

Roland
źródło