Kiedy otwieram plik CSV w Numbers, „pomocnie” konwertuje pola, które rozpoznaje jako liczbowe, usuwając zera wiodące, konwertując rzeczy, które rozpoznaje jako daty itp.
Weźmy na przykład kod UPC wpisany do arkusza kalkulacyjnego Numbers 005566778899 , Numbers automatycznie przekonwertuje go na 5566778899 . Nie tego chciałbym ...
Jednak sposób mogę korzystać z numerów, otwierania baz danych z tysięcy kodów UPC z poprzednich zer. Niektóre z nich zawierają również daty, które Numbers również sformatuje. Zasadniczo nie chcę żadnej z tych funkcji, chcę, aby moje treści pozostały same.
Jak mogę sprawić, by Numbers pozostawił moje dane nienaruszone po otwarciu pliku CSV?
Konwersja pól na tekst po zaimportowaniu nie pomoże, ponieważ dane zostały już pomieszane z ...
macos
mac
numbers
autocorrect
henryaaron
źródło
źródło
Odpowiedzi:
Jeśli pole w pliku CSV zaczyna się apostrofem (
'
), zarówno Excel, jak i Numbers będą traktować to pole jako tekst i nie będą renderować go przy użyciu formatowania numerycznego.Wygląda na to, że twoje pliki CSV próbują wymusić renderowanie tekstu poprzez zawarcie pól liczb w podwójnych cudzysłowach, ale Numbers i Excel nie wydają się sugerować, że podwójne cudzysłowy powinny być traktowane jako ciągi znaków. Wydaje się, że sztuczka polega na modyfikowaniu plików CSV, tak aby używały sztuczki „zaczyna się od pojedynczego apostrofu” zamiast sztuczki „zawartej w podwójnych cudzysłowach” w przypadku pól numerycznych, ale zachowaj podwójne cudzysłowy w przypadku pól tekstowych zawierających znaki interpunkcyjne (w tym przecinki, cudzysłowy, podziały wierszy itp.).
Aby przetworzyć pliki CSV, aby to zrobić, możesz utworzyć aplikację Automator.
W Automatorze utwórz nową aplikację.
Będzie miał jedną akcję: Uruchom skrypt powłoki (przekazując dane wejściowe jako argumenty). Oto skrypt:
Zapisz wynikową aplikację na pulpicie. Upuść wszystkie pliki CSV, których chcesz użyć, w Numbers na ikonie aplikacji, a zostaną one przekonwertowane, dzięki czemu Numery powinny przechowywać liczby w polach jako liczby dosłowne, a nie formatować ich ani wyrzucać informacji.
Wykonaj kopię zapasową danych przed wypróbowaniem tego; możliwe, że szczególnie dziwnie skonstruowany ciąg znaków w polu rekordu mógłby zrzucić wyniki tutaj.
źródło
W szczególności oto sposób obsługi zer wiodących . Myślę, że twoje pytanie dotyczy bardziej formatowania komórek niż autokorekty.
Jak wspomniano, sama funkcja autokorekty jest elementem systemowym i należy ją wyłączyć w Preferencjach systemowych.
źródło
Huzzah, dzięki tej odpowiedzi i innym, istnieje teraz metoda o następujących zaletach:
Sztuczka polega na tym, aby nie poprzedzać apostrofem każdego pola ani zawijać podwójnych cudzysłowów, ale poprzedzać
="
i sufiksem za pomocą"
. Podczas importu Numbers traktuje zawartość pola jako ciąg, a podczas eksportu upuszcza prefiks i sufiks.Oto przydatna jedna linijka, która wstępnie przetwarza plik o nazwie
my.csv
:Pierwsze
sed
umieszcza="
na początku każdej linii, zmienia każdy przecinek na",="
, a następnie kończy każdą linię na"
. Drugised
następnie usuwa wszystkie puste pola, ponieważ Numbers dławią się na nich. Na koniec zapisuje plik o nazwie,tmp.csv
który można dwukrotnie kliknąć lub przekazać,open
aby zaimportować do Numbers.W praktyce zepsuje to pola zawierające przecinki. Lepiej jest zawijać tylko te pola, które zaczynają się od liczb, ale wtedy musisz uważać na początek i koniec każdej linii oraz swoją wersję wyrażeń regularnych. To zrobi na macOS:
Oznacza to, że dopasuj początek wiersza lub przecinka, cyfrę, a następnie dowolną liczbę znaków, które nie są przecinkami, a następnie koniec wiersza lub inny przecinek. Zamień na ten sam początek i koniec, ale z środkowym bitem owiniętym w
="
i"
.źródło