Jak otwierać pliki CSV rozdzielane średnikami w programie Excel w wersji amerykańskiej

95

Po dwukrotnym kliknięciu pliku .csv jest on otwierany w programie Excel. Pliki csv mają kolumny rozdzielone średnikami (nie przecinkami, ale także prawidłowy format).

Korzystając z niemieckiego systemu Windows / Excel, otwarty plik jest wyświetlany poprawnie, kolumny są oddzielone tam, gdzie w pliku csv znajdowały się średniki.

Ale kiedy robię to samo w konfiguracji (Windows) Excel / Windows (USA), tylko jedna kolumna jest importowana, pokazując całe dane, łącznie ze średnikami w pierwszej kolumnie.
(Nie mam konfiguracji w języku angielskim do testów, użytkownicy zgłosili zachowanie)

Próbowałem zmienić wartość separatora listy w ustawieniach regionalnych Windows, ale to nic nie zmieniło.

Co mogę zrobić, aby móc dwukrotnie kliknąć i otworzyć te pliki CSV w konfiguracji angielskiej?

EDYCJA:
Wydaje się, że najlepszym rozwiązaniem nie jest poleganie na plikach CSV w tym przypadku. Miałem nadzieję, że istnieje pewne formatowanie plików CSV, które umożliwia ich użycie na arenie międzynarodowej.
Najlepsze rozwiązanie wydaje się, że przejdę do tworzenia plików XLS.

Holgerwa
źródło
1
Możesz polecić swoim użytkownikom korzystanie z LibreOffice Calc - dobrze radzi sobie z CSV z dowolnymi separatorami.
naught101

Odpowiedzi:

1

Te pliki są dystrybuowane? pobrane? Generowane lokalnie?

Uważam, że unikalnym sposobem rozwiązania problemu bez dostępu do komputera użytkownika i bez konieczności wykonania czegoś innego „dwukrotnego kliknięcia” pliku jest konwersja plików do formatu .xls przed rozpowszechnieniem lub umieszczeniem do pobrania lub wygenerowaniem .xls (lub inny działający format) zamiast pliku .csv. Możesz to zrobić za pomocą skryptu lub ręcznie za pomocą działającego programu Excel, w zależności od liczby plików i sposobu ich generowania.

Laurent
źródło
tak, myślę, że to najlepszy sposób na bezpośrednie tworzenie plików XLS. Miałem nadzieję, że istnieje formatowanie plików CSV, które czynią je użytecznymi na arenie międzynarodowej, ale jeśli nie jest to możliwe, pliki XLS będą działać bez względu na to, gdzie.
Holgerwa
8
Jak to jest poprawna odpowiedź, jest bezużyteczna.
Stevie G,
Straszna odpowiedź - zobacz drugą pozytywną odpowiedź.
jmc
203

Dodaj to w pierwszym wierszu pliku CSV:

sep=;

lub

sep=,

Spowoduje to zastąpienie ustawienia systemu („znak separatora listy”) i program Excel otworzy plik poprawnie.

atx
źródło
4
+1 zrobił to w programie Excel 2010 i działało idealnie.
N Reed
8
Czy istnieje lista innych takich ustawień? Mówienie programowi Excel, aby go używał, ponieważ separator dziesiętny zwykle idzie w parze z poleceniem jego użycia; jako separator kolumn.
ZweiBlumen
5
Działa idealnie dla programu Excel, ale należy pamiętać, że może to nie być obsługiwane w innych arkuszach kalkulacyjnych lub programach danych. Może to być tylko niewielki problem, po prostu wyświetlenie dodatkowej pierwszej linii z sep=lub sep=;w nim, ale niektóre zautomatyzowane programy lub skrypty mogą nie oczekiwać dodatkowej pierwszej linii, w wyniku czego nagłówki kolumn lub sep=;sama linia będą interpretowane jako rzeczywiste dane.
Sygmoral
5
Ostrożnie z tym. Jeśli zapiszesz w programie Excel, spowoduje to: - Usunięcie specyfikacji separatora - Zapisanie za pomocą regionalnego separatora ustawień
Bjinse
1
Potwierdza fwrite($fileHandle, 'sep=,' . "\r\n");całkowicie naprawiony problem fputcsvw PHP.
h2ooooooo
26

Możesz użyć Kreatora importu tekstu. Nie działa to przy podwójnym kliknięciu, ale jest najlepsze, jakie mogę wymyślić, nie wymagając bałaganu przy ustawieniach języka.

W programie Excel 2003 goto Data-> Import External Data-> Import Datana pasku menu (nie mogę powiedzieć, gdzie to jest w 2007 roku, w tej chwili nie mam tego pod ręką). Znajdź i wybierz plik CSV.

Kiedy się otworzy, pojawi się ikona Text Import Wizard, która pozwala określić ogranicznik (-y) do użycia.

DMA57361
źródło
W programie Outlook 2007 dostałem się do zakładki Dane, wybierz swoją kolumnę i kliknij przycisk Tekst do kolumn w zestawach narzędzi danych.
Hondalex,
1
Tak, to jest rozwiązanie. Niestety użytkownicy, którzy muszą spojrzeć na dane, nie chcą tego zrobić. Potrafią obsłużyć „podwójne kliknięcie-otwarcie”, ale nie będą w stanie zrobić nic bardziej skomplikowanego. Próbowaliśmy przynajmniej trochę ich edukować, ale odmawiają.
Holgerwa
1
@Holgerwa - czy możliwe jest uruchomienie plików poprzez jakiś proces konwersji przed przekazaniem ich użytkownikom? Czy też muszą pozostać oddzielone średnikiem? Inni to sugerują, ale zamiana średników na przecinki za pomocą jakiegoś skryptu powinna być dość łatwa (odradzam proste wyszukiwanie / zamianę, ponieważ nie chcesz konwertować tych cudzysłowów).
DMA57361,
6

Zobacz ten artykuł:
Problem z otwieraniem plików CSV w programie Excel? Problem z przecinkiem i średnikiem w programie Excel z powodu ustawień regionalnych dla Europy

Który oferuje 3 rozwiązania:

  • Zmień rozszerzenie pliku CSV na TXT (po otwarciu pliku TXT w programie Excel uruchomi się kreator importu plików tekstowych, w którym możesz wybrać separator)
  • Zamień wszystkie „,” na „;” w plikach CSV
  • Zmień ustawienia regionalne i językowe

Ponieważ zmieniłeś tylko wartość separatora listy w ustawieniach regionalnych systemu Windows, zauważam, że artykuł mówi o wpisaniu „.” Dla Decimal Symboli „,” dla List Separator.

Jeśli czujesz się komfortowo z VBA, zobacz:

Otwieranie pliku CSV rozdzielanego średnikami za pomocą VBA w programie Excel 2000
Eksportowanie i importowanie tekstu za pomocą programu Excel

harrymc
źródło
Zgadzam się, wszystkie prawidłowe opcje, ale niestety nie jestem w normalnej sytuacji z użytkownikami tych plików CSV. Import .TXT nie działa (zobacz mój komentarz do odpowiedzi DMA57361), zamiana średników na przecinki nie będzie działać z powodu problemów z separatorem dziesiętnym, a zmiana ustawień regionalnych nie będzie działać, ponieważ nie mam dostępu do Komputery, które są używane. Użytkownicy po prostu klikną dwukrotnie pliki, a jeśli nie dostaną tego, czego oczekują, złożą skargę i odmówią pomocy w rozwiązaniu problemu.
Holgerwa
@Holgerwa: Jeśli nie kontrolujesz komputerów użytkowników, nic nie możesz zrobić. Ponieważ moją inną sugestią byłoby zmienić moduł obsługi na rozszerzenie .csv, aby był własnym programem, który poprawi (ale inteligentnie) ograniczniki i wywoła program Excel.
harrymc
@Holgerwa: Proszę zwrócić uwagę na moją zmianę powyżej dotyczącą ustawień regionalnych.
harrymc
3

Najlepszym sposobem, jaki próbowałem, jest ustawienie regionalnych ustawień komputera w następujący sposób:

  • w „Standardach i formatach” wybierz „Angielski (Stany Zjednoczone)”;
  • w „Lokalizacjach” wybierz „Stany Zjednoczone”.

To działa dla mnie, po prostu spróbuj.

jaz
źródło
W rzeczywistości kwestia PO jest odwrotna. Należy zmienić na region europejski, aby uzyskać przecinek jako symbol dziesiętny, a następnie średnikiem będzie separator listy.
yosh m
0

Jeśli w pliku nie ma innych przecinków, możesz po prostu znaleźć / zamienić w edytorze tekstu na średnikach, aby zamienić je w przecinki. Po tym traktuj jak zwykły plik csv.

DHayes
źródło
Te pliki CSV muszą działać w różnych krajach (ustawienia regionalne), aw wielu ustawieniach regionalnych przecinek jest separatorem dziesiętnym zamiast kropki. Plik „standardowych” wartości rozdzielanych przecinkami nie będzie działać. Myślę, że to jest powód, dla którego średniki zostały dodane jako prawidłowy ogranicznik dla plików CSV.
Holgerwa