Jak zmusić program Excel do otwierania plików CSV z danymi ułożonymi w kolumny

32

Generuję plik CSV z rozszerzeniem .csv, w którym każdy kawałek danych w jednym wierszu jest oddzielony przecinkiem:

1,2,3,4
1,2,3,4

Plik jest wysyłany e-mailem i chcę, aby gdy klient go otworzył, zobaczył dane ułożone w kolumny.

Czy coś takiego jest możliwe?

PS: Mogę dowolnie zmieniać delimetr.

Timofey
źródło
1
Moim zdaniem nie można nic zrobić poza importowaniem danych do programu Excel, ponieważ program Excel nie może przyjmować żadnych założeń dotyczących struktury samych danych (np. Zastosowanego separatora, formatu miejsc po przecinku lub formatu ogólnego danych).
slhck 28.01.11
@slhck proszę spojrzeć na odpowiedź
Timofey
Och, nie wiedziałem, że Excel był w stanie to zrobić. Niezłe.
slhck 28.01.11
1
Wystarczy dwukrotnie kliknąć plik CSV, program Excel zostanie otwarty, a plik zostanie wyświetlony poprawnie. Mam rację?
wilson
@wilson: Excel musi być skojarzony z otwartymi plikami .csv, a następnie poprzez dwukrotne kliknięcie pliku .csv zostanie uruchomiony program Excel
Timofey

Odpowiedzi:

10

Użyj tabulacji zamiast przecinka. A jeśli to nie zadziała, nadaj plikowi rozdzielanemu tabulatorami rozszerzenie xls.

Joel Coehoorn
źródło
dzięki za rozwiązanie, zostawiłem rozszerzenie pliku .csv jako rozszerzenie pliku
Timofey
nie działa w programie Excel 14.7.1 na komputerze Mac (2017)
masukomi
3
„PS: Mogę dowolnie zmieniać delimetr”. sprawia, że ​​ta odpowiedź jest mniej aktualna
Paul Fijma
To nie odpowie, jak załadować plik CSV, ponieważ C oznacza przecinek.
JBernardo
@JBernardo Tak, kiedyś, ale dziś na wolności znajdziesz pliki z rozszerzeniami csv ze wszystkimi rodzajami ograniczników: tabulator, potok, przecinek, myślnik, @, \ 0 itd. Dobrze czy źle, są tam , a część pytania zatytułowana „Mogę zmienić ograniczniki” powoduje, że ta odpowiedź jest ważna.
Joel Coehoorn
43

jeśli ma to tylko umożliwić csv odczytanie w każdym systemie, istnieje nieudokumentowana sztuczka: w pierwszym wierszu zapisu SEP=;. Ta linia mówi EXCEL, którego znaku użyć jako separatora (w rzeczywistości możesz użyć dowolnego (pojedynczego) znaku ( ;,|@#'...))

UWAGA: ten wiersz jest tylko częścią csvsamego pliku. To będzie nie stają się częścią spreadsheed w programie Excel. oznacza to, że nie zostanie pokazany i nie zostanie zapisany, bez względu na to, jaki format zdefiniujesz do pisania lub eksportowania.

Stephan
źródło
To było ratowanie życia! Świetnie tu działało!
Etienne Dupuis
najlepsze rozwiązanie IMHO, ponieważ powinno działać ze wszystkimi językami
mBardos
39

Zachowanie programu Excel podczas otwierania plików CSV w dużym stopniu zależy od ustawień lokalnych i używanych list separatorw Region and language » Formats » Advanced. Domyślnie Excel zakłada, że ​​każdy plik CSV został zapisany z tym separatorem. To prawda, 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 wprowadź opis zdjęcia tutaj

Aby jeszcze bardziej Cię pomylić, ustawienie to zakłóca symbol dziesiętny, który można osobno ustawić w Excel Options » Advanced » Use system separatorsustawieniach regionalnych lub za pomocą ustawień regionalnych, jak pokazano powyżej. Excel nie może używać tego samego symbolu, co separator tabulatorów i list dziesiętnych. Automatycznie użyje przecinka lub średnika jako separatora kopii zapasowej. Czytaj więcej

Weźmię twój przykład, aby utworzyć 3 pliki. Każdy z innym separatorem i otwórz go w programie Excel.

    COMMA               SEMICOLON                     TAB 

wprowadź opis zdjęcia tutajwprowadź opis zdjęcia tutajwprowadź opis zdjęcia tutaj

Nie to samo co Twój Excel? Tak myślałem.

Pozwala więc ręcznie zmienić rozszerzenie z tych samych plików CSV na XLS i sprawdzić, co się teraz stanie. Najpierw program Excel wyświetli ostrzeżenie, że rozszerzenie pliku nie pasuje do zawartości, a program Excel zgadnie, co jest w środku.

    COMMA        SEMICOLON                   TAB 

wprowadź opis zdjęcia tutajwprowadź opis zdjęcia tutajwprowadź opis zdjęcia tutaj

Wniosek: TAB + zmiana nazwy + ignorowanie ostrzeżenia = Win na każdym systemie?
Może, ale nie byłbym taki pewien dla klientów spoza twojego kraju.

Najlepszą metodą jest poinstruowanie klientów, aby najpierw otworzyli pusty program Excel, a następnie przejść do Data » Get data from texti ręcznie wybrać przecinek jako separator

nixda
źródło
2
Ta odpowiedź jest świetna, ale uważam to za żałosne od Microsoftu. Otwierasz csv w Numbers i otwiera się poprawnie. Otwierasz go w arkuszach Google i otwiera się poprawnie. Następnie otwierasz go w Excelu, który jest jedynym, za który płacisz i ... Nic. Co z tymi z nas, którzy nigdy nie ustawili separatora listy? Teraz muszę tracić czas, próbując sprawić, by działało, ponieważ „przecinki” nic nie znaczą w tym „csv”. Bardzo frustrujące.
Dotknij
> 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
Lub możesz zmienić separator dziesiętny w opcjach programu Excel superuser.com/a/1470373
Alex78191
1

Możesz zamienić „.csv” na „.txt”, uruchomić program Excel i otworzyć ten plik .txt. Następnie program Excel wyświetli asystenta, w którym możesz określić użycie „,” jako separatora. Gdy ponownie zapiszesz ten plik jako .csv, następnym razem program Excel otworzy go tak, jak potrzebujesz.

daviii
źródło
0

Innym rozwiązaniem, którego użyłem w tej sytuacji, było wyjście podstawowego pliku HTML zamiast CSV. Excel może to otworzyć bez błędu. Może również odczytać przynajmniej część formatowania z pliku.

nieprzetworzony tekst
źródło
0

To najgłupsza odpowiedź na świecie, ale zadziałała. Codziennie korzystam z plików CSV. Tworzę je cały czas i przeglądam z excelem. Dzisiaj, po 12 latach nieobecności tego problemu, przydarzyło mi się to. Nie otworzy pliku CSV i nie sformatuje kolumn. Nawet niektóre pliki csv, które utworzyłem zeszłej nocy z programem Excel, otwierałyby się w jednej kolumnie w wierszu.

Rozwiązanie: Sprawdź menedżera zadań dla wszystkich otwartych instancji programu Excel.exe. Zabij wszystkie instancje i spróbuj ponownie otworzyć plik csv.

facepalm

Ricky
źródło
0

W krótkim okresie, jeśli musisz tylko otworzyć plik CSV, który został do Ciebie przesłany z innego kraju -

Otwórz plik w wordpadzie i użyj funkcji znajdź i zamień, aby zmienić każdy separator używany przez kraj wydający (np.;) I zastąp przecinkiem. (np.).

Wystarczy sprawdzić, czy kraj wydający nie używa przecinka zamiast innego symbolu (np. W Hiszpanii używają przecinka, w którym używamy miejsca po przecinku, więc trzeba znaleźć i zamienić przecinek na miejsce po przecinku, a następnie znaleźć i zastąpić inny symbol przecinkiem).

Nie jest to rozwiązanie długoterminowe, ale wystarczająco dobre, aby sam plik był czytelny, jeśli spieszysz się i nie możesz uzyskać dostępu do panelu sterowania w pracy.

Steve Dexter
źródło
0

Wpadłem na ten sam problem. Miałem plik CSV, który Excel nieprawidłowo analizował i potrzebowałem Kreatora importu.

Prosta poprawka polegała na zmianie nazwy CSV na TXT i pojawił się Kreator, który pomaga poprawnie rozpoznać strukturę kolumny.

Jan Bares
źródło
0

Odpowiedź związana z tym - szczególnie w przypadku problemów MacOS / OSX z Excelem rozpoznającym przecinki:
w programie Excel 2019 niepoprawne otwieranie CSV - nieparsowanie kolumn: /superuser//a/1506042/1116939

Jarosław Nikołajew
źródło