Excel umieszcza cudzysłowy tylko w niektórych polach. Jak zmusić program Excel do zapisania pliku CSV z cudzysłowami wokół każdej kolumny?
Excel umieszcza cudzysłowy tylko w niektórych polach. Jak zmusić program Excel do zapisania pliku CSV z cudzysłowami wokół każdej kolumny?
Odpowiedzi:
Jeśli otworzysz plik XLS w LibreOffice lub OpenOffice, a następnie Zapisz jako .... i wybierz Tekst CSV, pozwoli to wygenerować plik CSV, który zawiera również cudzysłowy jako ograniczniki. Np .: „Smith”, „Pete”, „Canada” „Jones”, „Mary”, „England”
Wystarczy zaznaczyć pole „Cytuj wszystkie komórki tekstowe”:
Aby cytować również pola numeryczne, zaznacz zakres komórek i zmień formatowanie komórki na „tekst” przed zapisaniem.
Ta strona zawiera również rozwiązanie, które pochodzi prosto z pyska konia:
http://support.microsoft.com/kb/291296/en-us
Jeśli link się pogarsza, tematem do wyszukiwania jest:
„Procedura eksportowania pliku tekstowego z ogranicznikami przecinkowymi i cudzysłowami w programie Excel” i / lub „Q291296”
tl; dr: użyj ich makra
Znalazłem to łatwe rozwiązanie:
"''"@"''"
(patrz szczegóły poniżej)Wklejany ciąg "''"@"''"
to podwójny cytat, pojedynczy cytat, pojedynczy cytat, podwójny cytat, symbol @, podwójny cytat, pojedynczy cytat, pojedynczy cytat, podwójny cytat.
Edytowane dla programu Excel 2010 na podstawie informacji tutaj znalezionych .
\"@\"
Wygląda na to, że PowerShell zrzuca poprawnie. więc coś w stylu
wyszukaj PowerShell.exe na komputerze z systemem Windows, jeśli nie znasz PowerShell.
import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8
Mam nadzieję, że to komuś pomaga.
import-csv Myfile.csv | export-csv Myfile_quoted.csv -NoTypeInformation -Encoding UTF8
. pamiętaj, aby używać pojedynczych cudzysłowów wokół nazw plików ze spacjami lub innymi znakami specjalnymi.
To było dla mnie najłatwiejsze: zaimportowałem arkusz kalkulacyjny do programu Access 2010 i wyeksportowałem go stamtąd jako plik tekstowy z ogranicznikami. Daj mi znaki cudzysłowu wokół moich pól. Teraz, gdy mam kroki w dół, zajmuje mniej niż minutę dla 42 tys. Rzędów.
Znalazłem inną pracę, która nie dotyczy Makra VBA, ale która wymaga Notepad ++ lub podobnego edytora tekstowego opartego na makrach.
Wyeksportuj plik jako tekst rozdzielany tabulatorami, a następnie otwórz eksportowany plik w Notepad ++. Zamień wszystkie wystąpienia znaku „tab” na tekst „,” (tzn. Dosłownie podwójny cudzysłów, przecinek, podwójny cudzysłów), a następnie użyj innego makra do prefiksu i sufiksu każdego wiersza tekstu podwójnym cudzysłowiem.
Trochę hacky, ale znalazłem to szybciej niż uruchomienie makra VBA.
Zaznacz komórki, które chcesz dodać cytaty. Idź do Format -> Komórki -> Niestandardowe Kopiuj / Wklej następujące w polu Typ: \ ”@ \” Kliknij „OK” Ciesz się, że nie zrobiłeś tego wszystkiego ręcznie.
Od: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/
"''"@"''"
(patrz szczegóły poniżej)' '
(powtarzające się pojedyncze cytaty) na "
(podwójny cytat);
Jeśli używasz Notepad ++ do dodawania cudzysłowów na początku każdej linii, po prostu otwórz wyeksportowany plik csv, umieść kursor w 1. linii, 1. kolumnie, a następnie kliknij menu Edytuj / Edytor kolumn ... , w polu „ Tekst do wstawienia ”, enter ” , wtedy na początku każdego wiersza będzie cytat, następnie możesz użyć wyrażenia regularnego, aby wyszukać / zamienić wszystkie zakładki.
Dla użytkowników systemu Windows
Zauważ, że to nie jest ten sam cytat na klawiaturze, który ma odmianę do przodu i do tyłu.
Więc jeśli używasz CSV do załadowania do tabeli Mysql, wytnij i wklej do parametru ENCLOSED, w przeciwnym razie będziesz się zastanawiać, dlaczego otrzymujesz wiadomość#1083 - Field separator argument is not what is expected
Zastosowałem poniższe podejście, aby pobrać trzy kolumny w programie Excel i zbudować ciąg w czwartej kolumnie.
=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""
Moim problemem z "''"@"''"
podejściem jest to, że druga kolumna moich danych była liczbą, w której "''"@"''"
podejście nic nie dało z liczbami. Czasami druga kolumna jest pusta, ale musiałem się upewnić, że jest reprezentowana w końcowym pliku tekstowym.
Innym sposobem, jeśli masz dostęp do MS (mam wersję 2007), zaimportuj plik, a następnie wyeksportuj go jako plik tekstowy. Następnie zmień .txt na .csv. Uwaga: wszystkie pola liczbowe nie będą zawierać podwójnych cudzysłowów, więc jeśli potrzebujesz podwójnych cudzysłowów wokół liczb, wówczas w programie Access zmień pole z pola liczbowego na pole tekstowe.
Eksportowanie ciągów oddzielonych przecinkami i cudzysłowów można wykonać tylko w programie Excel 2016 i Notatniku, używając kopii danych, formuły, eksportu, zmiany właściwości pliku, zamiany w Notatniku, zapisując wyeksportowany plik i czyszczenie. Każdy z nich jest prostym krokiem. Szczegółowo:
Skopiuj kolumny do wyeksportowania do nowego arkusza pośredniego, aby zachować oryginał i kopię zapasową, a nowy arkusz należy usunąć później, aby pozostawić arkusz kalkulacyjny bez zmian.
Umieść inaczej nie występujące znaki, powiedz „#” lub „;-)” na każdym końcu ciągu w kolumnie powiedz A z formułą =concat("#",trim(A1),"#")
, umieszczając formułę na wszystkich wierszach innej kolumny.
Skopiuj nowe kolumny z powrotem nad A ..., używając metody „123”, aby nie przenosić formuły.
Wyeksportuj arkusz jako plik CSV, aby wstawić przecinki między polami, w tym liczbami.
Zmień właściwości file.csv, aby można je było otworzyć za pomocą Notatnika.
Użyj Notatnika, aby zamienić dowolne znaki na „” ”.
Chociaż użycie „jako arbitralnego charakteru wydaje się rozsądne, należy go umieścić w innej komórce, powiedz„ 50 A $ 50 ”, a następnie to, co pojawia się podczas eksportu, to„ ”„ ”, najwyraźniej kolejny niewygodny czynnik uruchamiający.
W notatniku plik należy zapisać, stając się plikiem * .txt do zaimportowania, a plik pośredni * .csv usunąć.
Po wyczyszczeniu dodatkowej misji arkusza kalkulacyjnego zakończona.
Być może narzędzia eksportu Access mogą pewnego dnia zostać osadzone w programie Excel. Bardziej ogólne podejście wśród programów używających wycinania i wklejania polega na tym, że opcje wklejania obejmują wybór sposobów interpretacji struktury wyjściowej i zapewnienia ograniczników.
Odpowiedź Michaela z 21 sierpnia 2014 roku jest naprawdę pomocna. Musiałem jednak wykonać dodatkowy krok lub dwa:
To jest mój przepis. Nienawidzę tego robić, ale nie miałem lepszego sposobu. W moim przypadku nie otrzymuję cytatów w żadnym polu. Musiałem także użyć kodowania UTF-8 i; zamiast kart, więc to właśnie skończyłem.
UWAGA: z powodu nieczytelności umieszczania podwójnych cudzysłowów w pojedynczych cudzysłowach i tak dalej, celowo użyłem „formatowania klawiatury” do wskazania zarówno naciśnięć klawiszy, jak i literalnych znaków i ciągów.
Wiele razy napotkałem ten problem. Oto najprostsze rozwiązanie, jakie wymyśliłem.
Access pozwoli ci określić ogranicznik eksportu jako przecinek i kwalifikujące się pola tekstowe z cudzysłowami. W kreatorze eksportu możesz określić dowolny separator lub znak wokół ciągów, które chcesz.
Konieczne może być utworzenie zapytania Access w celu uporządkowania pól w określonej kolejności lub ukrycie pola automatycznego identyfikatora dodanego przez Access.
Ponadto ... po wyeksportowaniu do pliku CSV NIE otwieraj go ponownie w programie Excel. Jeśli chcesz spojrzeć na wyniki, otwórz je w notatniku. Excel ma tendencję do bałagania z danymi pliku csv ... Myślę, że jeśli poprawnie pamiętam, to były pola wypełnione zerami wiodącymi.
Oto jak użyć aplikacji OpenOffice do pobrania arkusza kalkulacyjnego Excel i utworzenia pliku tekstowego (csv) ze znakami cudzysłowu wokół każdego pola tekstowego.
Otwórz plik Excel za pomocą OpenOffice, a następnie wykonaj następujące kroki:
Plik> Zapisz jako
Podaj nową nazwę pliku, który chcesz utworzyć
W polu Typ pliku wybierz „Test CSV (.csv)”
włącz pole wyboru „Edytuj ustawienia filtra”
kliknij „Zapisz”
wybierz „Zachowaj bieżący format”
Separator pola powinien być przecinkiem:,
Separator tekstu powinien zawierać cudzysłów: „
zaznacz pole „Cytuj wszystkie komórki tekstowe”
Kliknij OK"
To zadziałało dla mnie!