Szukałem przez jakiś czas, próbując wymyślić, jak wydrukować plik CSV w taki sposób, aby zmusić Excela do interpretowania wartości jako ciągu i nie próbowałem konwertować ich na liczby lub daty.
na przykład:
"141", "10/11/2002", "350.00", "1311742251"
Excel próbuje „inteligentnie” przekonwertować je na natywne formaty daty / liczb. Czy jest na to jakiś sposób?
EDYCJA: Wyjaśniłem cel mojego pytania, przepraszam za zamieszanie.
źródło
"=""123"""
inaczej źle sformułowana. Pola zawierające a"
muszą być rozdzielone, a"
s w polu ucieka z innymi"
s.="123"
nie jest prawidłowym polem CSV, ponieważ zawiera znak ogranicznika pola"
bez prawidłowego rozgraniczenia go lub pola. Fakt, że Excel odczytuje go jako formułę, zależy wyłącznie od Excela i nie ma nic wspólnego z plikiem CSV.Jak wielu, zmagam się z tymi samymi decyzjami, które podejmuje Microsoft i wypróbowałem różne sugerowane rozwiązania.
W przypadku programu Excel 2007 wygląda to następująco:
Jednak:
Umieszczenie tabulacji przed wszystkimi wartościami przed umieszczeniem wokół nich podwójnych cudzysłowów NIE pozwala na konwersję na daty ORAZ zapobiega przycinaniu wiodących lub końcowych zer, a arkusz nie wyświetla nawet nieprzyjemnych znaczników ostrzegawczych w lewym górnym rogu każdej komórki.
Na przykład:
Pamiętaj, że znak tabulacji musi znajdować się w podwójnych cudzysłowach. Edycja: okazuje się, że podwójne cudzysłowy nie są nawet konieczne.
Dwukrotne kliknięcie pliku csv może otworzyć plik jako arkusz kalkulacyjny w programie Excel pokazujący wszystkie wartości, które są traktowane jak powyżej, np. Dane tekstowe. Upewnij się, że program Excel używa „.” jako przecinek dziesiętny, a nie „,” lub każdy wiersz pliku csv, skończy jako jeden tekst w pierwszej komórce każdego wiersza. Najwyraźniej Microsoft uważa, że CSV oznacza oddzielną wartość „nie przecinek dziesiętny”.
źródło
Korzystanie z funkcji importu Excela pozwala określić format (auto, tekst lub datę), każda kolumna powinna być interpretowana jako i nie wymaga modyfikacji plików danych.
Można go znaleźć jako
Data
→Get External Data
→From Text
w programie Excel 2007/2010.Lub
Data
→Import External Data
→Import Data
w programie Excel 2003.Oto obraz Kreatora importu tekstu Excel 2003 w akcji na podanych przykładowych danych, pokazujący importowanie dwóch ostatnich kolumn jako tekstu:
źródło
Przykład Simona nie działał dla mnie i podejrzewam, że jest to różnica językowa. W języku C # wygląda mój ciąg formatu roboczego:
i tak wygląda plik wyjściowy:
Jak widać, format pliku wyjściowego
="VALUE",
nie jest,"=""VALUE""",
jak sądzę, konwencją Visual Basic.Korzystam z programu Excel 2010. Nawiasem mówiąc, Arkusze Google nie otwierają / konwertują pliku sformatowanego w ten sposób. Będzie działać, jeśli usuniesz w ten sposób znak równości
"VALUE",
- program Excel nadal otworzy plik, ale zignoruje fakt, że chcesz, aby kolumny były ciągami znaków.źródło
Prostym sposobem zmuszenia programu Excel do interpretowania daty jako tekstu jest umieszczenie pojedynczego cudzysłowu przed datą, zamiast używania pełnych cudzysłowów, jak w:
Jeśli możesz zaimportować plik CSV zamiast go otwierać, możesz powiedzieć Excelowi, jaki format powinna mieć każda kolumna. Spójrz na to pytanie, które zadałem .
źródło