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.
microsoft-excel
microsoft-excel-2010
csv
Timofey
źródło
źródło
Odpowiedzi:
Użyj tabulacji zamiast przecinka. A jeśli to nie zadziała, nadaj plikowi rozdzielanemu tabulatorami rozszerzenie xls.
źródło
jeśli ma to tylko umożliwić
csv
odczytanie w każdym systemie, istnieje nieudokumentowana sztuczka: w pierwszym wierszu zapisuSEP=;
. 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ą
csv
samego 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.źródło
Zachowanie programu Excel podczas otwierania plików CSV w dużym stopniu zależy od ustawień lokalnych i używanych
list separator
wRegion 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
Aby jeszcze bardziej Cię pomylić, ustawienie to zakłóca symbol dziesiętny, który można osobno ustawić w
Excel Options » Advanced » Use system separators
ustawieniach 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ęcejWeźmię twój przykład, aby utworzyć 3 pliki. Każdy z innym separatorem i otwórz go w programie Excel.
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.
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 text
i ręcznie wybrać przecinek jako separatorźródło
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.
źródło
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.
źródło
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
źródło
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.
źródło
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.
źródło
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
źródło