Jak poprawnie wyświetlać pliki .csv w programie Excel 2013?

190

Wygląda na to, że Excel 2013 nie odczytuje poprawnie plików CSV (Excel 2010 robi). Za każdym razem, gdy otwieram pliki .csv, wszystkie moje dane są wyświetlane w pierwszej kolumnie.

Wiem, że mogę przejść do DATA, Converta następnie wybrać commas, ale ta konfiguracja nie jest zapisywana i mam dość robienia tego za każdym razem, gdy otwieram tego rodzaju plik.

Jak ustawić program Excel 2013 raz na zawsze, aby ładnie wyświetlał pliki CSV (oddzielone przecinkami)?

David
źródło
1
Czy po otwarciu pliku pojawia się komunikat?
Andre Silva,
Nie. Brak wiadomości
David
Z mojego doświadczenia wynika, że ​​jeśli plik ma wiersz nagłówka, program Excel 2013 automatycznie przejdzie przez kreatora importu. Bez tego wiersza nagłówka pokazuje to wszystko jako pojedynczą kolumnę na wiersz.
StarPilot

Odpowiedzi:

401

Otwórz plik CSV za pomocą porządnego edytora tekstu, takiego jak Notepad ++, i dodaj następujący tekst w pierwszym wierszu:

sep=,

Teraz otwórz go ponownie za pomocą programu Excel.

Spowoduje to ustawienie separatora jako przecinek lub możesz zmienić go na dowolne potrzebne.

Guilherme Viebig
źródło
3
Najlepsze rozwiązanie, ale nie takie, jakiego się spodziewałem. To ustawienie nie pochodzi z samego programu Excel, co oznacza, że ​​muszę napisać powyższą linię na wszystkich moich plikach CSV.
David
31
Fakt, że jest to niestandardowe, żadne aplikacje piszące CSV nie dodają tej linii i tylko Excel (o ile wiem) akceptuje ją. Sprawia, że ​​jest to najlepsze rozwiązanie. Nie wspominając o tym, że nie działa to w przypadku programu Excel 2007 (najlepsze, jakie mamy tutaj w pracy)
jmarkmurphy
21
Nie mówimy o standardach. Mówimy o Microsoft Excel. Program Excel jest dostarczany z różnymi konfiguracjami i klawiszami skrótu w zależności od języka. To sprawia, że ​​importowanie pliku CSV jest zagadką. Jest to po prostu obejście i uważam, że pomaga wielu ludziom, głównie zaawansowanym użytkownikom, choć nie jest to najlepsza odpowiedź.
Guilherme Viebig
10
Potrzebujesz rozwiązania, które nie wymaga dodawania wierszy do pliku, ponieważ psuje to inne rzeczy, które wymagają użycia pliku. Ponadto wypróbowałem już rozwiązanie ustawień regionalnych, ale ustawienia były już zgodne ze wskazaniami i program Excel nadal umieszcza wszystko w pierwszej kolumnie.
Elliot
2
To pokazuje linię, jeśli otworzysz csv w Libreoffice Calc. Działa dobrze w MS Excel.
Arda
93

W przypadku programu Excel 2013:

  1. Otwórz pusty skoroszyt.
  2. Przejdź do zakładki DANE .
  3. Kliknij przycisk Z tekstu w sekcji Ogólne dane zewnętrzne .
  4. Wybierz plik CSV.
  5. Postępuj zgodnie z instrukcjami Kreatora importu tekstu . (w kroku 2 wybierz ogranicznik tekstu)

http://blogmines.com/blog/how-to-import-text-file-in-excel-2013/

marcosbernal
źródło
38

Problem dotyczy opcji regionalnych. Separator dziesiętny w win 7 dla krajów europejskich to śpiączka. Musisz otworzyć Panel sterowania -> Opcje regionalne i językowe -> Ustawienia dodatkowe -> Separator dziesiętny: kliknij, aby wprowadzić kropkę (.), A do Listy separatora wprowadź przecinek (,). To jest !

skander
źródło
5
To nie działa. Mam ten zestaw, jak wskazano, i jest ignorowany. Wszystko jest do pierwszej kolumny.
Elliot
1
Niesamowite - pomogło to koleżance korzystającej z pakietu Office 2011. Ustawiliśmy jej region z Polski (który używa „,” jako separatora dziesiętnego) na Wielką Brytanię i to naprawiło. Dlaczego warto to zrobić różnicę Nie mam pojęcia ...
John
3
To rozwiązanie działa dla mnie (Excel 2013). Dostosowuję format regionalny: ustawiam kropkę (.) Jako „separator dziesiętny”, przecinek (,) jako „separator tysięcy” i przecinek (,) jako „separator listy”
cesargastonec
1
Używam domyślnego formatu „angielski (Kanada)” systemu Windows 10, który normalnie wyświetla poprawnie plik CSV (z oddzielnymi kolumnami) podczas otwierania pliku za pomocą programu Excel 2013-2016. Ostatnio zauważyłem, po ponownym otwarciu pliku CSV, że jedna z moich aplikacji zmienia domyślny format numeracji. Jak określono tutaj, po przywróceniu kropki (.) Jako „separatora dziesiętnego” i przecinka (,) jako formatu numeracji „separatora listy” plik CSV był wyświetlany poprawnie. Nie trzeba wymyślnego obejścia polegającego na zhakowaniu pierwszego wiersza pliku CSV za pomocą notatnika w celu dodania „sep =,”
JP slash otterlover
1
Wreszcie! Po wielu minutach próbowania więcej niż powinienem zastąpić wyrażeniem regularnym w Notatniku ++ separator, przecinek dziesiętny / przecinek, a nie znaki w cudzysłowach itp., Przypomniałem sobie o tej odpowiedzi i po prostu ustawiłem moje ustawienia języka inaczej, jak wskazano tutaj. Teraz poprawnie oddziela kolumny, a liczby również pojawiają się poprawnie, bez zepsucia tekstu.
Fabian Röling
25

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 wyjścia 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
3
Doceniam tę odpowiedź. Lubię używać, Some-Command | Out-File -Encoding Defaultktóry zwykle zapewnia prawidłowe kodowanie ANSI (domyślnie fabryczne przynajmniej w USA).
Mister_Tom,
Więc jeśli nie określisz kodowania, Out-Filekodujesz plik jako coś innego niż Defaultdomyślnie? Próbuję zrozumieć, że ... jest domyślnie ... ale nie jest domyślnie używany ... a zatem nie jest domyślny?
jdgregson
Użycie opcji „-Encoding Default” naprawiło to dla mnie. Dzięki!
Kirk Liemohn
21

Możesz wybrać separator, który chcesz w Excel 2013 Idź do DANE -> Tekst do kolumn -> Wybierz separator -> następnie wybierz separator „Tab, średnik, przecinek, spacja lub inny”, a zobaczysz zmiany natychmiast w „podglądzie danych ”, a następnie kliknij przycisk Zakończ

Po uzyskaniu pożądanego formatu wystarczy zapisać dokument i będzie on trwały.

użytkownik3241007
źródło
2
Nie dotyczy to głównego pytania. Musimy to traktować jako domyślne zachowanie dla każdego takiego pliku, a nie naprawiać go w jednym konkretnym pliku.
Elliot
17

Zaczerpnięte z /superuser/238944/how-to-force-excel-to-open-csv-files-with-data-arranged-in-columns

Zachowanie programu Excel podczas otwierania plików CSV w dużym stopniu zależy od ustawień lokalnych i wybranego separatora listy w obszarze Region i język » Formaty » Zaawansowane . Domyślnie Excel zakłada, że ​​każdy plik CSV został zapisany z tym separatorem. Co jest prawdą, o ile CSV nie pochodzi z innego kraju!

Jeśli Twoi klienci są w innych krajach, mogą zobaczyć inne wyniki, niż myślisz.

Na przykład tutaj widać, że niemiecki Excel użyje średnika zamiast przecinka, jak w USA

Ustawienia regionalne

cdmdotnet
źródło
> To rozwiązanie działa na mnie (Excel 2013). Dostosowuję format regionalny: ustawiam kropkę (.) Jako „separator dziesiętny”, przecinek (,) jako „separator tysięcy” i przecinek (,) jako „separator listy” - cesargastonec 13 lipca 2015 o 16: 05
Alex78191,
1
Lub możesz zmienić separator dziesiętny w opcjach programu Excel superuser.com/a/1470373
Alex78191
4

Innym możliwym problemem jest to, że plik csv zawiera znak kolejności bajtów „FEFF”. Znak kolejności bajtów ma na celu wykrycie, czy plik został przeniesiony z systemu przy użyciu sortowania dużych lub małych bajtów endianu do systemu o przeciwnej endianowości. https://en.wikipedia.org/wiki/Byte_order_mark

Usunięcie znaku kolejności bajtów „FEFF” za pomocą edytora szesnastkowego powinno umożliwić programowi Excel odczytanie pliku.

Devon Holcombe
źródło