Zwiększ limit wielkości importu danych z csv do Excela

13

Mam ładunek danych w pliku csv, który importuję do programu Excel, większość z nich jest w porządku, ale jedna z moich kolumn zawiera do 1000 znaków danych. Niestety, Excel wziął na siebie założenie, że to więcej danych niż potrzebuję i wydaje się, że skraca je (przy 255 znakach).

Jak mogę zwiększyć ten limit i zachować wszystkie moje dane?

SwiftD
źródło
Co masz na myśli mówiąc „Niestety, Excel wziął na siebie założenie, że to więcej danych niż potrzebuję i wydaje się, że je skraca”. czy nie wyświetla się poprawnie? co się stanie, jeśli wstawisz =LEN(A1)do Excela, gdzie A! jest odniesienie do twojego tekstu?
Peter Albert
Mówi 255, a kiedy patrzę na dane W polu wprowadzania formuły nagle zatrzymuje się. Mogę wyświetlać pełne dane w otwartym biurze, ale jak tylko wkleję, aby się wyróżnić, wydaje się, że ogranicza się do 255 znaków. Powodem, dla którego nie korzystam z otwartego biura, jest to, że mogę wkleić dane lub zrobić w tym vlookup.
SwiftD
Excel może obsługiwać teksty dłuższe niż 255 znaków. Jednak jeśli komórka jest wypełniona przez VBA, jest to nieco skomplikowane. Jakie jest twoje źródło? Jak dostać to do Excela?
Peter Albert
Mam eksport CSV z Magento. Jeśli otworzę w OO, ma pełny tekst. Jeśli otworzę w programie Excel, jest to skrót. Skraca się również, gdy wklejam z OO do programu Excel i nie mogę ręcznie pisać więcej w komórce, po prostu zostaje odcięty w tym samym momencie, jak tylko opuszczę komórkę.
SwiftD
Może coś jest nie tak z CSV? Czy możesz zaktualizować swoje pytanie i zamieścić kilka wierszy? A może ustawienia separatora i separatora na twoim komputerze zaczną działać?
Jan Doggen

Odpowiedzi:

14

W Excelu jest dziwny błąd. Wyjaśnię tutaj, jak tego uniknąć (nie naprawiać, tylko unikać), a być może wkrótce to naprawią programiści MS Office. Może nawet zostało to naprawione w programie Excel 2013, jeszcze go nie otworzyłem.

To jest problem.

Maksymalna długość komórki tekstowej wynosi 32767 i jest OK.

Maksymalna długość komórki liczbowej wynosi 255 i jest OK.

Ale jeśli masz komórkę, która wywołuje parser liczb, zawiedzie, a następnie wywołuje parser tekstowy, tutaj będzie wielki bałagan.

Na przykład:

...,"This is a cell with 30,000 characters........",...

będzie działać.

Ale jeśli umieścisz mały minus na początku, jak w

...,"-This is a cell with 30,000 characters........",...

zobaczysz tylko 255 pierwszych znaków tekstowych, ponieważ EXCEL uważa, że ​​jest to liczba ujemna.

Mam nadzieję, że to pomoże.

khitron23
źródło
3
To najdziwniejszy i najgłupszy błąd, jaki kiedykolwiek widziałem w oprogramowaniu komercyjnym. Dosłownie doprowadza mnie to do szaleństwa, jak, u licha, możesz zapłacić za tego rodzaju pieprzenie.
astrojuanlu
1
Bardzo dobre wytłumaczenie, dziękuję. Niestety mogę potwierdzić, że - 3 lata później - błąd jest nadal obecny w programie Excel 2016 ...
BurninLeo
Cóż, @BurninLeo, mogę powiedzieć, że trzy dni po mojej oryginalnej odpowiedzi zadzwoniłem do Centrum deweloperów MS Office i podałem im link do tego tematu superużytkownika.
khitron23
Wydaje się, że problem został rozwiązany w programie Excel 365 ProPlus w wersji 1902.
Carsten Franke
Potwierdza, że ​​ta funkcja / błąd nadal występuje w programie Excel 2016 od kwietnia 2020 r.
Geeves
1

Natrafiłem na ten problem z plikiem csv, który miał kilka długich pól tekstowych, które czasami zaczynały się od myślnika. Wygląda na to, że import Excela próbuje przetworzyć pole jako liczbę ze względu na myślnik, a import liczb obcina go do 255 znaków. Gdy to się nie powiedzie, importuje go jako tekst, ale tylko pierwsze 255 znaków.

Aby uniknąć tego problemu, musiałem zaimportować plik CSV zamiast po prostu go otworzyć. W kreatorze importu wybrałem kolumnę, która miała problem, i zmieniłem jej typ z Ogólne na Tekst. Wtedy Excel nawet nie spróbuje parsować go jako liczby i otrzymam pełną szerokość kolumny.

Don Kirkby
źródło
0

Po pierwsze, dziękuję wszystkim za pomoc w próbach rozwiązania tego problemu. Okazuje się, że excel może z radością pomieścić ponad 255 znaków w komórce (przypuszczalnie do 32 767, jak wspomniano wcześniej, jeśli masz do tego ram.

Dlaczego więc nie działa?

Krótka odpowiedź nie jest pewna. Za pierwszym razem, gdy wprowadziłem dane do programu Excel, wyeksportowałem je jako plik CSV, a następnie otworzyłem w programie Excel. To skróciło kolumny (255). (plik csv zawierał wszystkie dane podczas przeglądania za pomocą notatnika, ale nie był zapisywany ponownie za pomocą programu Excel).

Kolumna, o której mowa, zawierała kilka średników, ale to nie odpowiadało punktowi odcięcia (zawsze 255) i nie używałem; jako separator.

Moje rozwiązanie musi zostać wyeksportowane jako plik xls. Od tego czasu został pomyślnie zapisany jako plik csv z pełnymi danymi.

Mam nadzieję, że to komuś pomaga, chociaż nadal nie jestem pewien, o co dokładnie chodziło.

SwiftD
źródło
Zwykłe wyszukiwanie w Google powoduje, że wiele postów na forum osób, które mają ten sam problem; to prawdopodobnie tylko błąd w procedurze importu Excel CSV.
Marcus Chan
0

Zgodnie z http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010342495.aspx , Excel 2010 obsługuje tylko kolumnę o szerokości 255 znaków.

Edycja: Czy to jest problem, o którym mówisz, Webweaver? Czy Format> Komórki> Zawijaj tekst sprawia, że ​​reszta znaków jest widoczna?

Edycja: Nieważne, ta odpowiedź jest w pewnym stopniu niezwiązana z danym problemem (być może w jakiś sposób powiązana, ale nie odpowiada na pytanie)

Marcus Chan
źródło
Nie, to jest SZEROKOŚĆ KOLUMNY. Z tej samej tabeli „Całkowita liczba znaków, które może zawierać komórka”, wynosi 32 767 znaków.
Vicky
@Vicky, czy nie jest to problem występujący u pytającego? A może źle zinterpretowałem pytanie?
Marcus Chan
@nixda real? tak, naprawdę denerwujące. Nie mogę uwierzyć, że excel nie jest w stanie obsłużyć 255 znaków. Jest na to sposób!
SwiftD
@Marcus Nie rozumiem, co to znaczy przez szerokość kolumny. To nie jest tylko problem z wyświetlaniem, danych tam nie ma. Skraca się. kiedy zapisuję jako plik csv, danych tam nie ma. kiedy zrobię len (komórkę), wynik to 255.
SwiftD
@MarcusChan, liczba znaków powinna być ograniczona do 32767. Użytkownik odczuwa, że ​​jest ograniczony do 255. To, o czym mówiłeś, to szerokość kolumny, która ma związek z tym, jak kolumna jest wyświetlana, co nie jest problemem PO.
Vicky,
0

Zasadniczo jest to stare ograniczenie, które nie dotyczy już nowoczesnych wersji programu Excel (w każdym razie 2013). Jeśli jednak skoroszyt został pierwotnie utworzony w starszej wersji, obiekty komórki, które zostały zmodyfikowane (tj. W ten sposób utworzone za pomocą określonych właściwości i atrybutów) w starszej wersji, najwyraźniej zachowają ograniczenie 255 znaków, nawet gdy zostaną otwarte w nowszych wersjach programu Excel!

Naprawa:

  1. Korzystając z nowoczesnej wersji programu Excel, w innej, nieużywanej komórce w arkuszu, odtwórz wszystkie warunki formatowania i / lub zakresu scalonego wymagane dla komórki problemowej.
  2. Upewnij się, że jest ustawiony na format ogólny lub tekstowy.
  3. Wytnij lub skopiuj i wklej nową, odtworzoną wersję komórki (lub scalony zakres) i wklej ją na starą, złą wersję.
  4. Teraz, gdy wprowadzasz dane do komórki, problem nie powinien się już pojawiać.

Jak później opublikował WebweaverD, znalazł rozwiązanie swojego problemu z importem csv. Ponadto, jeśli komórki są zapełniane przez VBA, sytuacja staje się bardziej złożona, jak wspomniano w innych odpowiedziach. Ale jeśli dane są wprowadzane ręcznie lub kopiowane / wklejane z innej aplikacji do starszego skoroszytu, problem może być spowodowany tym starszym problemem z atrybutem komórki.

pstraton
źródło
0

Miałem podobny problem, wszystkie moje wartości były w formacie (aby konwertować liczby na liczby, tekst na tekst, ale pocięte były długie teksty:

...,="Long Text........",...

jeśli umieścisz = na początku, zobaczysz tylko 255 pierwszych znaków tekstowych, ponieważ EXCEL uważa, że ​​to liczba, więc usuń = na początku.

Mam nadzieję, że to pomoże.

metodi25
źródło
1
Czy różni się to od tego, co ktoś inny wspomniał już w odpowiedzi? Może to wymagać oznaczenia flagą i możesz poprosić moderatora o konwersję na komentarz, ponieważ nie masz wystarczającej liczby powtórzeń, aby zrobić to sam.
Pimp Juice IT,
0

Obejścia (dostępne w programie Excel 2016) ...

Opcja A. Uruchom program Excel w kreatorze importu tekstu (używając czegoś takiego jak rozszerzenie pliku .txt lub użyj rozszerzenia .xls, zaakceptuj ostrzeżenie, wybierz pierwszą kolumnę i wykonaj polecenie Dane => „Tekst do kolumn”). Następnie zmień typ kolumny z Ogólne na Tekst pod koniec kreatora.

Opcja B. Użyj Get & Transform. Dane => Nowe zapytanie => Z pliku => Z CSV.

stevlars
źródło
Rozważ dodanie odniesienia do tej odpowiedzi na poparcie tego, co podałeś.
Pimp Juice IT