Pytanie Excel CSV - format komórki numeru


Produkuję raport jako plik CSV. Kiedy próbuję otworzyć plik w Excelu, przyjmuje on założenie o typie danych na podstawie zawartości komórki i odpowiednio je formatuje.

Na przykład, jeśli plik CSV zawiera

...,005,...

Następnie Excel pokazuje go jako 5. Czy istnieje sposób, aby to zmienić i wyświetlić 005?

Wolałbym coś zrobić z samym plikiem, aby użytkownik mógł kliknąć dwukrotnie plik CSV, aby go otworzyć.

Używam programu Excel 2003.


76
2017-09-26 02:07


pochodzenie


Widzieć to pytanie dla makro rozwiązania tego problemu. - Adam Jensen
W dzisiejszych czasach istnieje wiele bibliotek do pisania Excela. Tworzenie plików .xlsx w języku, który wybierzesz, powinno być łatwe. Jeśli Twoi użytkownicy nadal używają programu Excel 2003 z jakiegoś powodu (często, gdy pierwotnie zadawano to pytanie, ale mam nadzieję, że jest to mało prawdopodobne dzisiaj), istnieją również opcje tworzenia .xls. Dla osób, które natkną się dzisiaj na to pytanie, bardzo prawdopodobne jest, że nie trzeba samemu się rozwijać. - John Y


Odpowiedzi:


Nie ma łatwego sposobu kontrolowania formatowania programu Excel, który jest stosowany podczas otwierania pliku .csv. Poniżej wymienione są trzy podejścia, które mogą pomóc.

Moją preferencją jest pierwsza opcja.

Opcja 1 - Zmień dane w pliku

Możesz zmienić dane w pliku .csv w następujący sposób ...,= "005", ... To będzie wyświetlane w Excelu jako ...005, ...

Excel zachowa dane jako formułę, ale skopiowanie kolumny i użycie wklejanych wartości specjalnych pozbędzie się formuły, ale zachowa formatowanie

Opcja 2 - Formatuj dane

Jeśli jest to po prostu kwestia formatu, a wszystkie dane w tej kolumnie mają długość trzech cyfr. Następnie otwórz dane w programie Excel, a następnie sformatuj kolumnę zawierającą dane w tym niestandardowym formacie 000

Opcja 3 - Zmień rozszerzenie pliku na .dif (format wymiany danych)

Zmień rozszerzenie pliku i użyj kreatora importu plików, aby kontrolować formaty. Pliki z rozszerzeniem .dif są automatycznie otwierane przez program Excel po dwukrotnym kliknięciu.

Krok po kroku:

  • Zmień rozszerzenie pliku z .csv do .dif
  • Kliknij dwukrotnie plik, aby otworzyć go w programie Excel.
  • Uruchomi się Kreator importu plików.
  • Ustaw "Typ pliku" na "Rozdzielany" i kliknij przycisk "Dalej".
  • W obszarze Ograniczniki zaznacz "Przecinek" i kliknij przycisk "Dalej".
  • Kliknij każdą kolumnę wyświetlanych danych i wybierz "Format danych kolumny". Kolumna o wartości "005" powinna być sformatowana jako "Tekst".
  • Kliknij przycisk Zakończ, plik zostanie otwarty przez Excel z formatami, które określiłeś.

108
2017-09-26 21:23



.dif nie działa na moim komputerze; ręczne otwarcie programu Excel 2007 nie działało (ostrzegało mnie, że typ pliku był inny niż rozszerzenie) i wygląda na to, że .DIF jest kojarzone z QuickTime na wielu komputerach. Tylko FYI :) W przeciwnym razie, świetne wskazówki! - Nicholas Head
Myślę, że opcja 1 jest najlepsza, jeśli chcesz bezproblemowy sposób generowania pliku, który "po prostu działa" - tj. otwiera się na komputerze użytkownika w programie Excel bez konieczności wykonywania dodatkowej pracy. - Kip
Mam ten sam problem i żadna z powyższych nie jest odpowiednia. Mam wrażenie, że mogę eksportować jako XML i użyć XSLT, aby przejść do pliku CSV. Potrzebuję poprawnego pliku CSV, aby można go było zaimportować do innej aplikacji - Matt
Czy zmiana liczby na formułę działa w każdym kodowaniu? - Rob Fox
Pamiętaj, że opcja 1 nie zawsze jest dobra, jeśli masz komórkę z powiedzeniem "1E02, bez względu na tekst", a następnie zrób to samo, Excel wyobrazi sobie, że wprowadziłeś formułę. Najpierw formuła będzie zła, ale druga, a co najważniejsze, podzieli twój tekst na 2 komórki. - ghiscoding


Nie używaj pliku CSV, użyj SYLK.
http://en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK)

Daje to o wiele większą kontrolę nad formatowaniem, a Excel nie będzie próbował odgadnąć typu pola, badając zawartość. Wygląda to trochę skomplikowanie, ale możesz uciec z użyciem bardzo małego podzestawu.


27
2017-09-26 02:49



+1 Zapisywanie do SYLK jest łatwe do wdrożenia, zrobiłem to jako nowicjusz. - Matt H
Nie wiedziałem o tym formacie. Wygląda to na coś, z czego mógłbym skorzystać. +1 za to! - Buggabill
+1 Za pięć minut zajęło mi przejście z pliku CSV na SYLK. Mój format wyjściowy goto od teraz! - TheFish
SYLK może reprezentować tylko ANSI, więc my, Niemcy, nie możemy z niego korzystać. - xamde
@xamde, masz rację. To dziwne, że nigdy nie rozszerzyły formatu obsługującego go, tak jak w przypadku RTF. - Mark Ransom


Działa to w przypadku pakietu Microsoft Office 2010, wersja programu Excel 14

Błędnie odczytałem preferencję PO "zrobić coś dla samego pliku." Nadal utrzymuję to dla tych, którzy chcą rozwiązania bezpośredniego formatowania importu

  1. Otwórz pusty (nowy) plik (Plik -> Nowy ze skoroszytu)
  2. Otwórz Kreator importu (dane -> z tekstu)
  3. Wybierz plik .csv i Importuj
  4. W oknie dialogowym wybierz "Rozdzielone" i kliknij Dalej.
  5. Wybierz separatory (odznacz wszystko oprócz "przecinka"), wybierz kwalifikatory tekstu (prawdopodobnie {None}), kliknij Dalej
  6. w Podgląd danych pole wybierz kolumnę, która ma być tekstem. Powinno to podkreślić.
  7. w Format danych kolumny pole, wybierz "Tekst".
  8. Kliknij Zakończ.

14
2018-05-15 21:27



To jest poprawna odpowiedź! - Rhyous
objaśniane obrazami: support.insight.ly/hc/en-us/articles/... - Yo Ludke


Możesz po prostu sformatować swój zakres jako Tekst.

Również tutaj to fajny artykuł na temat formatów liczbowych i sposobu ich programowania.


2
2017-09-26 02:10



To wpłynie tylko na sposób wyświetlania wartości. Musisz przekonwertować go na tekst za pomocą formuły lub podczas importowania za pomocą jednej z wielu metod w tym wątku - leo


W rzeczywistości odkryłem, że, przynajmniej począwszy od pakietu Office 2003, można zapisać arkusz kalkulacyjny programu Excel jako plik XML. W ten sposób mogę wygenerować plik XML, a po dwukrotnym kliknięciu go plik zostanie otwarty w programie Excel. Zapewnia taki sam poziom kontroli jak SYLK, ale składnia XML jest bardziej intuicyjna.


2
2017-09-26 04:29





Pomocne może być dodanie spacji nierozdzielającej w komórce. Na przykład: "firstvalue";"secondvalue";"005 ";"othervalue"

Zmusza program Excel do potraktowania go jako tekstu, a przestrzeń nie jest widoczna. W systemie Windows możesz dodać niezłamaną przestrzeń, przekazując alt + 0160. Zobacz tutaj, aby uzyskać więcej informacji: http://en.wikipedia.org/wiki/Non-breaking_space

Próbowałem w Excel 2010. Mam nadzieję, że może to pomóc osobom, które wciąż szukają odpowiedniego rozwiązania dla tego problemu.


2
2017-10-09 14:01





Miałem ten problem podczas eksportowania danych CSV z kodu C # i rozwiązałem ten problem, przygotowując początkowe dane zerowe za pomocą znaku tabulatora \ t, więc dane zostały zinterpretowane jako tekst, a nie numeryczne w programie Excel (ale w przeciwieństwie do poprzedzania innych znaków, nie byłoby to możliwe ". być widocznymi).

Podobało mi się podejście "001", ale nie pozwoliłoby to na ponowne zaimportowanie wyeksportowanych danych CSV do mojej aplikacji C # bez usuwania całego tego formatowania z importowanego pliku CSV (zamiast tego po prostu przycinam importowane dane) .


2
2018-01-24 11:20





Wierzę, że po zaimportowaniu pliku możesz wybrać Typ kolumny. Ustaw jako tekst zamiast liczby. W tej chwili nie mam przed sobą kopii, żeby to sprawdzić.


1
2017-09-26 02:10





Załaduj plik csv do biblioteki oleDB i wprowadź do łańcucha wszystkie wnioskowane typy danych

zadałem to samo pytanie, a następnie odpowiedziałem na to z kodem.

zasadniczo po załadowaniu pliku csv sterownik oledb przyjmuje założenia, można określić, jakie założenia należy wprowadzić.

Mój kod wymusza na łańcuchach wszystkie typy danych ... ale bardzo łatwo zmienić schemat. dla moich celów użyłem xslt, aby uzyskać tak, jak chciałem - ale parsuję wiele różnych plików.


1
2017-12-22 14:05





Wiem, że to stare pytanie, ale mam rozwiązanie, którego tutaj nie ma.

Podczas tworzenia pliku csv dodaj spację po przecinku, ale przed wartością np. , 005,.

To działało, aby zapobiec automatycznemu formatowaniu daty w programie Excel 2007.


1
2018-01-04 19:28



Po prostu przetestowane, nie wydaje się działać z programem Excel 2007 i kolumną liczbową. : - / - Norman H