Próbuję zaimportować następujący zestaw danych do programu Excel. Nie miałem szczęścia z kreatorem importu tekstu. Chciałbym, aby Excel tworzył nazwy, nazwy, ulice itp. Nazwy kolumn i wstawiał każdy rekord do nowego wiersza.
,
id: sdfg:435-345,
name: Some Name,
type: ,
street: Address Line 1, Some Place,
postalcode: DN2 5FF,
city: Cityhere,
telephoneNumber: 01234 567890,
mobileNumber: 01234 567890,
faxNumber: /,
url: http://www.website.co.uk,
email: [email protected],
remark: ,
geocode: 526.2456;-0.8520,
category: some, more, info
,
id: sdfg:435-345f,
name: Some Name,
type: ,
street: Address Line 1, Some Place,
postalcode: DN2 5FF,
city: Cityhere,
telephoneNumber: 01234 567890,
mobileNumber: 01234 567890,
faxNumber: /,
url: http://www.website.co.uk,
email: [email protected],
remark: ,
geocode: 526.2456;-0.8520,
category: some, more, info
Czy jest jakiś prosty sposób, aby to zrobić za pomocą programu Excel? Trudno mi wymyślić sposób na łatwe przekonwertowanie go na konwencjonalny CSV. O ile mogę pomyśleć, musiałbym usunąć etykiety z każdej linii, ująć każdą linię w cudzysłów, a następnie rozdzielić je przecinkami. Oczywiście jest to nieco trudniejsze do skryptu, ponieważ niektóre pola (na przykład adres) zawierają dane rozdzielone przecinkami. W ogóle nie jestem dobry z regexem.
Jak najlepiej rozwiązać ten problem?
microsoft-excel
regex
format
csv
Anonymous
źródło
źródło
Odpowiedzi:
To makro działa z twoim przykładem.
(Zakładam, że wiesz, jak postępować z makrami VBA)
źródło
Zakładając, że jest to operacja jednorazowa:
Użyj edytora tekstu z makrami klawiatury.
Napisz makro, które przesuwa się „jeden blok” w dół, od pojedynczego przecinka do pojedynczego przecinka
Przejdź przez dokument za pomocą tego makro, aby upewnić się, że wszystkie bloki zawierają wszystkie pola; jeśli nie, wstaw brakujące pola (linie)
Zrób globalne zastąpienie: „na” „w przypadku, gdy w danych znajdują się podwójne cudzysłowy
Napisz nowe makro, które otacza wszystkie linie w bloku podwójnymi cudzysłowami, a następnie połącz je, usuwając znak końca wiersza na końcu
Wykonaj import CSV w Excelu
Uwagi:
Nie wszystkie kroki mogą być konieczne w zależności od rzeczywistych danych w całym pliku
Możliwe są wariacje na ten temat (np. Zamiana n na "n", aby szybko otoczyć wszystkie linie podwójnymi cudzysłowami), w zależności od rzeczywistych danych i możliwości edytora.
Być może będziesz musiał wypróbować różne warianty, aby rzeczywisty import CSV działał w programie Excel (np. Spróbuj otaczających pojedynczych cudzysłowów)
Przechowuj pliki pośrednie dla różnych kroków edycji, aby nie trzeba było powtarzać wszystkich kroków podczas próby
źródło