Jak wkleić dane Excela jako tekst o stałej szerokości?

16

Jeśli skopiuję dane do Excela i wkleję je do pliku tekstowego, dostanę tabulatory między komórkami. To nie jest dobre, chcę spacji - i chcę, aby kolumny były wyrównane. Jak mogę to osiągnąć bez większego wysiłku (oczywiście nie chcę ręcznie uruchamiać wyrażeń regularnych itp.)

Używanie „Zapisz jako” (jak w tym pytaniu ) nie jest dla mnie rozwiązaniem, potrzebuję skopiować i wkleić.

einpoklum
źródło
mam możliwe rozwiązanie, które wymagałoby wklejenia z jednego skoroszytu do innego skoroszytu (a następnie z drugiego skoroszytu do dowolnego miejsca, w którym wklejasz. czy to pasuje do Twojego przepływu pracy?
Pynner
@Pynner: Cóż, pasuje lepiej niż żadne rozwiązanie, więc tak, śmiało.
einpoklum,

Odpowiedzi:

14

Z pewnością nie jest to łatwe do wyjaśnienia ... ale po skonfigurowaniu będzie działać przy minimalnym wysiłku. Jest to również niewielka odmiana tego, co zarysował @pnuts

Sugeruję użycie szablonu arkusza kalkulacyjnego, do którego można skopiować i wkleić. szablon, który utworzyłem, ma 3 zakładki, które wyglądają następująco.

zakładki

  • Data Zakładka to miejsce, w którym dane są wklejane
  • Length zrobi matematykę, aby ustalić najdłuższą kolumnę
  • Space insert wstawi odpowiednią liczbę spacji (edytuj), którą możesz skopiować tutaj i uzyskać poprawny wynik

wygląda zakładka długości

długość

Wiersz 1 ma maksymalną liczbę znaków w kolumnie poniżej zawiera formułę

=MAX(A2:A101)+1

+1 tworzy separator.

Wiersze od 2 do n (które w tym przykładzie rozszerzyłem do 100) zawierają formułę do oceny długości każdego łańcucha

=LEN('Data tab'!A1)

wygląda karta wstawiania spacji

wstawka spacji

Każda komórka zawiera komórkę, aby ocenić jej długość w porównaniu z wartością maksymalną (+ ogranicznik) i wstawić odpowiednią liczbę spacji.

='Data tab'!A1&REPT(" ",length!A$1-length!A2)

Zwróć uwagę na $, który blokuje wiersz 1, jeśli skopiujesz i wkleisz formułę

(edycja) możesz skopiować z zakładki wstawiania spacji.

notatnik

Pynner
źródło
1
Pomysłowo zaprojektowany!
einpoklum
Ale ... dlaczego tak naprawdę potrzebuję ostatniego arkusza? Mogę skopiować i wkleić z trzeciego arkusza. Nie chcę też używać żadnych długich formuł replikowanych dla każdej kolumny.
einpoklum
Całkiem słuszne ... ostatnia karta nie jest wymagana ... założyłem, że komórki wstawią dodatkowe znaki. Zaktualizuję moją odpowiedź, aby to naprawić
Pynner,
Doskonała odpowiedź, bardzo dziękuję. Osobiście niektóre moje kolumny wychodziły bardzo długo, więc dodałem stronę z „= LEWO („ wstaw spację ”! A1, $ K $ 2) i JEŻELI (Długość! A2> $ K $ 2,„ ... | ”, „|”) „gdzie $ K $ 2 jest ustawione na odpowiednią wartość (maks. najważniejszej kolumny). Działa to dobrze w przypadku opisów itp., Owijanie następnego kroku: p
chrispepper1989,
następnym krokiem byłoby właściwe wyrównanie liczb
vlad_tepesch
3

Najłatwiejszym rozwiązaniem byłoby połączenie danych liczbowych w „zatwierdzony” ciąg znaków, który poprawnie wkleja się do pliku tekstowego. Utwórz formułę Excel dla jednego wiersza, a następnie skopiuj ją dla wszystkich wierszy w arkuszu, a następnie skopiuj kolumnę z formułą i wklej do pliku tekstowego. Na przykład,

Dane

Komórka A1: 247

Komórka B1: 19

Komórka C1: 1437

Formuła w komórce D1

= A1 i „,” i B1 i „,” i C1

Wynik do wklejenia tekstu

247,19,1437

Istnieje inne podejście, które nie opiera się na formułach.

  • Najpierw upewnij się, że kolumny danych mają tę samą szerokość.
  • Następnie wstaw kolejną kolumnę między każdą parą kolumn danych, każda o szerokości 2.
  • Wprowadź pojedynczy przecinek w każdej z wstawionych kolumn, kopiując go wzdłuż długości danych.
  • Na koniec zapisz arkusz jako plik sformatowanego tekstu (rozdzielany spacją) (* .prn).

Zaletą tej alternatywy jest zachowanie formatowania danych. Jeśli chcesz sformatować dane przecinkami lub po prostu pokazać jedno miejsce po przecinku, formatowanie zostanie zachowane w pliku prn.

chuff
źródło
1
pnuts sugeruje, że poprawa jest dokładnie właściwa. Zaktualizowałem swoją odpowiedź inną alternatywą, która wykorzystuje Zapisz jako.
chuff
Tak więc, jak powiedziałem w pytaniu, oszczędzanie jako nie jest opcją. Czy rozwiązanie REPT będzie działać z wklejaniem kopii? Ponadto nie akceptuję jeszcze, ponieważ chciałbym czegoś mniej kłopotliwego.
einpoklum
0

Możesz skopiować dane w programie Word, a następnie użyć Znajdź i zamień (Ctrl + H), aby zamienić tabulatory spacjami.

  1. Otwórz i wklej dane w programie Word
  2. Naciśnij Ctrl+H
  3. Więcej >>
  4. Specjalny
  5. Biała przestrzeń
  6. Umieść spację w miejscu:
  7. Zamień wszystko
Michael
źródło
Nie zrobię tego, o co prosiłem, przepraszam - szerokości kolumn będą się różnić.
einpoklum