Mam plik Excel zawierający hiszpańskie znaki (tyldy itp.), Które muszę przekonwertować na plik CSV, aby użyć go jako pliku importu. Kiedy jednak zapisuję jako CSV, manguje „specjalne” hiszpańskie znaki, które nie są znakami ASCII. Wydaje się, że robi to również z lewymi i prawymi cudzysłowami i długimi myślnikami, które wydają się pochodzić od pierwotnego użytkownika tworzącego plik Excel na Macu.
Ponieważ CSV jest tylko plikiem tekstowym, jestem pewien, że obsługuje kodowanie UTF8, więc domyślam się, że jest to ograniczenie programu Excel, ale szukam sposobu na przejście z Excela do CSV i zachowanie znaków spoza ASCII nienaruszony.
Odpowiedzi:
Prostym obejściem jest użycie arkusza kalkulacyjnego Google. Wklej (wartości tylko, jeśli masz złożone formuły) lub zaimportuj arkusz, a następnie pobierz CSV. Właśnie wypróbowałem kilka postaci i działa całkiem dobrze.
UWAGA: Arkusze Google mają ograniczenia podczas importowania. Zobacz tutaj .
UWAGA: Uważaj na wrażliwe dane dzięki Arkuszom Google.
EDYCJA: Kolejna alternatywa - w zasadzie używają makra VB lub dodatków, aby wymusić zapis jako UTF8. Nie próbowałem żadnego z tych rozwiązań, ale brzmią rozsądnie.
źródło
Odkryłem, że aplikacja do obsługi arkuszy kalkulacyjnych OpenOffice , Calc, jest naprawdę dobra w obsłudze danych CSV.
W oknie dialogowym „Zapisz jako ...” kliknij „Opcje formatu”, aby uzyskać różne kodowania dla CSV. LibreOffice działa w ten sam sposób, co AFAIK.
źródło
Zapisz arkusz Excela jako „Tekst Unicode (.txt)”. Dobrą wiadomością jest to, że wszystkie znaki międzynarodowe są w UTF16 (uwaga, nie w UTF8). Jednak nowy plik „* .txt” jest rozdzielany znakami TAB, a nie przecinkami, a zatem nie jest prawdziwym plikiem CSV.
(opcjonalnie) O ile nie możesz użyć pliku rozdzielanego tabulatorami do importowania, użyj swojego ulubionego edytora tekstowego i zamień znaki TAB przecinkami „,”.
Zaimportuj plik * .txt do aplikacji docelowej. Upewnij się, że akceptuje format UTF16.
Jeśli UTF-16 został poprawnie zaimplementowany z obsługą punktów kodowych innych niż BMP, możesz przekonwertować plik UTF-16 na UTF-8 bez utraty informacji. Pozostawiam wam znalezienie swojej ulubionej metody.
Korzystam z tej procedury do importowania danych z Excela do Moodle.
źródło
;
, a następnie zaimportowałem plik txt do phpmyadmin z domyślnym „Zestawem znaków pliku: utf-8”, Format „CSV using LOAD DATA ”. Wszystkie kodowania zostały przesłane poprawnie.Wiem, że to stare pytanie, ale natknąłem się na to pytanie, walcząc z tymi samymi problemami co OP.
Nie znajdując żadnego z proponowanych rozwiązań, które jest realną opcją, postanowiłem dowiedzieć się, czy można to zrobić za pomocą Excela.
Na szczęście odkryłem, że problem z utraconą postacią występuje tylko (w moim przypadku) podczas zapisywania z formatu xlsx do formatu csv. Próbowałem najpierw zapisać plik xlsx do xls, a następnie do csv. To faktycznie działało.
Spróbuj i sprawdź, czy to działa dla Ciebie. Powodzenia.
źródło
Windows comma separated (CSV)
. Nie działa, jeśli użyję opcji domyślnej lub DOS CSV - obie te znaki zastępują znaki akcentowane losowymi śmieciowymi postaciami. Przetestowane znaków włącznieé
,è
,â
... Nie wiem, czy to jest prawdziwe UTF8 ale bohaterowie nie są zniekształcone.Możesz użyć polecenia iconv w systemie Unix (dostępnym także w systemie Windows jako libiconv ).
Po zapisaniu jako CSV w Excelu w wierszu poleceń wpisz:
(pamiętaj, aby zastąpić CP1250 kodowaniem).
Działa szybko i doskonale nadaje się do dużych plików, takich jak baza kodów pocztowych, których nie można zaimportować do GoogleDocs (limit 400 000 komórek).
źródło
sed
lubtr
przetłumaczyć z „\ t” na „”Możesz to zrobić na nowoczesnym komputerze z systemem Windows bez oprogramowania innych firm. Ta metoda jest niezawodna i obsługuje dane zawierające przecinki, tabulatory, znaki CJK itp.
1. Zapisz z Excela
W programie Excel zapisz dane,
file.txt
używając tego typuUnicode Text (*.txt)
.2. Uruchom PowerShell
Uruchom
powershell
z menu Start.3. Załaduj plik w PowerShell
4. Zapisz dane jako CSV
źródło
CHARACTER SET utf8mb4
sposób opisany tutaj: stackoverflow.com/a/10959780/470749Jedyny „łatwy sposób” na dokonanie tego jest następujący. Po pierwsze, uświadom sobie, że istnieje różnica między tym, co jest wyświetlane, a tym, co jest ukryte w pliku Excel .csv.
Ten plik znajduje się w UTF-8 i zachowuje wszystkie znaki i akcenty. Można go zaimportować na przykład do MySQL i innych programów bazodanowych.
Ta odpowiedź pochodzi z tego forum .
źródło
Kolejny, który uważam za przydatny: „ Liczby ” umożliwiają ustawienia kodowania podczas zapisywania jako CSV.
źródło
„nevets1219” ma rację co do dokumentów Google, jednak jeśli po prostu „zaimportujesz” plik, często nie konwertuje go do UTF-8.
Ale jeśli zaimportujesz CSV do istniejącego arkusza kalkulacyjnego Google, zostanie on przekonwertowany na UTF-8.
Oto przepis:
Wynikowy plik będzie w UTF-8
źródło
Korzystanie z Notepad ++
To naprawi uszkodzony plik CSV zapisany przez program Excel i ponownie zapisze go w odpowiednim kodowaniu.
Excel zapisuje w CP-1252 / Windows-1252. Otwórz plik CSV w Notepad ++. Wybierz
Następnie
Najpierw powiedz Notepad ++ o kodowaniu, a następnie przekonwertuj. Niektóre z tych innych odpowiedzi są konwertowane bez wcześniejszego ustawienia właściwego kodowania, co jeszcze bardziej zakłóca działanie pliku. Będą obracać, co powinno być
’
w達
. Jeśli twoja postać nie pasuje do CP-1252, to została już utracona, gdy została zapisana jako CSV. Użyj do tego innej odpowiedzi.źródło
.csv
jest to plik tekstowy. Ta odpowiedź otworzy plik CSV uszkodzony przez program Excel, napraw go, a następnie ponownie zapisz z odpowiednim kodowaniem.W programie Excel 2016 i nowszych (w tym Office 365) dostępna jest opcja CSV dedykowana formatowi UTF-8.
W Office 365 wykonaj Zapisz jako; gdzie wcześniej można było wybrać CSV ( rozdzielany przecinkami), teraz jednym z typów plików, które można zapisać, podobnie jak CSV UTF-8 (rozdzielany przecinkami) (* .csv)
źródło
Dla tych, którzy szukają całkowicie programowego (lub przynajmniej po stronie serwera) rozwiązania, odniosłem wielki sukces, używając narzędzia xls2csv catdoc.
Zainstaluj catdoc:
Wykonaj konwersję:
To płonie szybko.
Pamiętaj, że ważne jest, aby dołączyć
-d utf-8
flagę, w przeciwnym razie koduje ona dane wyjściowe w domyślnymcp1252
kodowaniu i ryzykujesz utratą informacji.Pamiętaj, że
xls2csv
działa również tylko z.xls
plikami, nie działa z.xlsx
plikami.źródło
Co z użyciem programu PowerShell.
źródło
Najłatwiejszy sposób: nie ma potrzeby otwierania dokumentów biurowych i google
csv
plik, którego nazwę właśnie zmieniono, i zastąp wszystkie karty przecinkami. Aby to zrobić w Notatniku na Win 10, wystarczy wybrać jedno pole karty, a następnie kliknąćCtrl+H
. W oknie, które zostanie otwarte, wpisz przecinek,
w polu „Zamień na”, a następnie kliknij „Zamień wszystko”. Zapisz swój plik. Rezultatem będzie plik csv rozdzielany przecinkami.Nie otwieraj go w MS Office! Teraz masz plik CSV rozdzielany tabulatorami. Lub rozdzielany przecinkami, jeśli zastosowałeś krok numer 5.
źródło
.txt
rozszerzenie.csv
, tzn. pliki oddzielone przecinkami, jest po prostu mylące.Choć może się to wydawać śmieszne, najłatwiejszym sposobem, aby zapisać 180 MB arkusza kalkulacyjnego w pliku CSV UTF8, było wybranie komórek do Excela, skopiowanie ich i wklejenie zawartości schowka do SublimeText.
źródło
Nie udało mi się znaleźć rozwiązania VBA dla tego problemu w Mac Excel. Wydawało się, że po prostu nie ma sposobu na wyprowadzenie tekstu UTF-8.
W końcu musiałem zrezygnować z VBA, ugryźć kulę i nauczyć się AppleScript. Nie było tak źle, jak myślałem.
Rozwiązanie opisano tutaj: http://talesoftech.blogspot.com/2011/05/excel-on-mac-goodbye-vba-hello.html
źródło
Zakładając środowisko Windows, zapisz plik i pracuj z nim jak zwykle w Excelu, ale następnie otwórz zapisany plik Excela w Gnome Gnumeric (bezpłatny). Zapisz arkusz kalkulacyjny Gnome Gnumeric jako CSV, który - w każdym razie dla mnie - zapisuje go jako UTF-8 CSV.
źródło
Łatwy sposób: pobierz open office ( tutaj ), załaduj arkusz kalkulacyjny i otwórz plik Excel (
.xls
lub.xlsx
). Następnie zapisz go jako tekstowy plik CSV, a otworzy się okno z prośbą o zachowanie bieżącego formatu lub zapisanie go w formacie .ODF. wybierz „zachowaj bieżący format” iw nowym oknie wybierz opcję, która działa lepiej dla Ciebie, zgodnie z językiem, w którym plik został zapisany. W przypadku języka hiszpańskiego wybierz opcję Europa Zachodnia (Windows-1252/ WinLatin 1
), a plik działa dobrze. Jeśli wybierzesz Unicode (UTF-8
), nie będzie działać z hiszpańskimi znakami.źródło
Zapisz plik xls (plik Excel) jako tekst Unicode => plik zostanie zapisany w formacie tekstowym (.txt)
Zmień format z .txt na .csv (zmień nazwę pliku z XYX.txt na XYX.csv
źródło
Natknąłem się również na ten sam problem, ale istnieje na to łatwe rozwiązanie.
Działa idealnie i generowany jest plik csv, który można zaimportować do dowolnego oprogramowania. Zaimportowałem ten plik csv do mojej bazy danych SQLITE i działa idealnie z nienaruszonymi wszystkimi znakami Unicode.
źródło
Natknąłem się na ten sam problem i przejrzał ten post. Żadne z powyższych nie działało dla mnie. W końcu przekonwertowałem plik .xls na Unicode na .xml (wybierz opcję Zapisz jako ... XML Spreadsheet 2003) i uzyskałem prawidłowy znak. Potem napisałem kod do parsowania xml i wyodrębniłem zawartość do własnego użytku.
źródło
Napisałem mały skrypt Pythona, który może eksportować arkusze w UTF-8.
Wystarczy podać plik Excel jako pierwszy parametr, a następnie arkusze, które chcesz wyeksportować. Jeśli nie dostarczysz arkuszy, skrypt wyeksportuje wszystkie arkusze znajdujące się w pliku Excel.
źródło
Excel zwykle zapisuje plik csv jako kodowanie ANSI zamiast utf8.
Jedną z opcji poprawienia pliku jest użycie Notatnika lub Notepad ++:
źródło
Drugą opcją dla „nevets1219” jest otwarcie pliku CSV w Notepad ++ i konwersja do ANSI.
Wybierz w górnym menu: Kodowanie -> Konwertuj na Ansi
źródło
Kodowanie -> Konwertuj na Ansi koduje je w ANSI / UNICODE. Utf8 jest podzbiorem Unicode. Być może w ANSI zostanie poprawnie zakodowany, ale tutaj mówimy o UTF8, @SequenceDigitale.
Są szybsze sposoby, np. Eksportowanie jako csv (rozdzielane przecinkami), a następnie otwieranie tego csv za pomocą Notepad ++ (bezpłatny), a następnie Kodowanie> Konwertuj na UTF8. Ale tylko jeśli musisz to zrobić raz na plik. Jeśli chcesz zmienić i eksportować, to najlepiej jest LibreOffice lub GDocs.
źródło
Microsoft Excel ma opcję eksportu arkusza kalkulacyjnego przy użyciu kodowania Unicode. Zobacz poniższy zrzut ekranu.
źródło
otwórz .csv w porządku z notatnikiem ++. jeśli widzisz, że twoje kodowanie jest dobre (widzisz wszystkie znaki, jakie powinny być), naciśnij kodowanie, a następnie przekonwertuj na ANSI - dowiedz się, jakie jest twoje obecne kodowanie
źródło
innym rozwiązaniem jest otwarcie pliku za pomocą winword i zapisanie go jako txt, a następnie ponowne otwarcie go za pomocą programu Excel i będzie działać ISA
źródło
Zapisz okno dialogowe> Przycisk Narzędzia> Opcje sieciowe> Karta Kodowanie
źródło
Mam ten sam problem i natknąłem się na ten dodatek, który działa doskonale w programie Excel 2013 oprócz programu Excel 2007 i 2010, o którym jest wspomniany.
źródło