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ć.


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


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.


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

Nie zrobię tego, o co prosiłem, przepraszam - szerokości kolumn będą się różnić.
— einpoklum
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.