Wie füge ich Excel-Daten als Text mit fester Breite ein?

23498
einpoklum

Wenn ich Daten in Excel kopiere und in eine Textdatei einfügen, werden Tabulatoren zwischen den Zellen angezeigt. Das ist nicht gut, ich möchte Leerzeichen - und ich möchte, dass die Spalten ausgerichtet werden. Wie kann ich dies ohne großen Aufwand erreichen? (Natürlich möchte ich Regrexps nicht von Hand ausführen usw.)

Die Verwendung von "Speichern unter" (wie in dieser Frage ) ist für mich keine Lösung, ich muss kopieren und einfügen.

11
Ich habe eine mögliche Lösung, die das Einfügen von einer Arbeitsmappe in eine andere Arbeitsmappe beinhalten würde (und dann von der anderen Arbeitsmappe an die Stelle, an der Sie sich gerade befinden. Passt das zu Ihrem Workflow? Pynner vor 11 Jahren 0
@ Pynner: Nun, es passt besser als gar keine Lösung, also ja, mach weiter. einpoklum vor 11 Jahren 0

3 Antworten auf die Frage

11
Pynner

This is certainly not simple to explain... but after it is setup it will work with minimal effort. Also this is a slight variation on what @pnuts has outlined

I suggest using a template spreadsheet that you can copy-paste to. the template i have created has 3 tabs that look as follows.

tabs

  • Data tab is where the data is pasted
  • Length is going to do some math to determine the longest column
  • Space insert is going to insert the appropriate number of spaces (edit) you can copy from here and get the correct result

the length tab looks like

length

Row 1 has maximum characters of the column below is and contains the formula

=MAX(A2:A101)+1 

+1 creates the delimiter.

Row 2 through to n (which i have extended to 100 for this example) contain a formula to evaluate the length of each string

=LEN('Data tab'!A1) 

the space insert tab looks like

space insert

Each cell contains a cell to evaluate the length of itself in comparison with the max value (+ delimiter) and insert an appropriate number of spaces.

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

Note the $ which locks Row 1 if you copy and paste the formula

(edit) you can copy from the space insert tab.

notepad

Genial erfunden! einpoklum vor 11 Jahren 1
Aber warum brauche ich wirklich das letzte Blatt? Ich kann aus dem dritten Blatt kopieren. Ich möchte auch keine langen Formeln verwenden, die für jede Spalte repliziert werden. einpoklum vor 11 Jahren 0
Ganz recht ... letzte Registerkarte nicht erforderlich ... Ich hatte angenommen, dass die Zellen zusätzliche Zeichen einfügen würden. Ich werde meine Antwort aktualisieren, um sie zu korrigieren Pynner vor 11 Jahren 0
Ausgezeichnete Antwort, vielen Dank. Persönlich kamen einige meiner Kolumnen sehr lange heraus, also habe ich eine Seite mit "= LEFT ('Leerzeichen einfügen!') Hinzugefügt. A1, $ K $ 2 & IF (Länge! A2> $ K $ 2," ... | ", "|") "wobei $ K $ 2 auf einen geeigneten Wert (das Maximum der wichtigsten Spalte) gesetzt ist. Dies funktioniert gut für Beschreibungen usw., nächster Schritt: Umwickeln: p chrispepper1989 vor 9 Jahren 0
3
chuff

Die einfachste Lösung wäre, Ihre numerischen Daten in einer "Commited" -Zeichenfolge zu verketten, die korrekt in eine Textdatei eingefügt wird. Erstellen Sie die Excel-Formel für eine Zeile und kopieren Sie sie anschließend für alle Zeilen im Arbeitsblatt. Kopieren Sie dann die Formelspalte und fügen Sie sie in die Textdatei ein. Zum Beispiel,

Daten

Zelle A1: 247

Zelle B1: 19

Zelle C1: 1437

Formel in Zelle D1

= A1 & "," & B1 & "," & C1

Text einfügbares Ergebnis

247,19,1437

Es gibt einen anderen Ansatz, der nicht auf Formeln basiert .

  • Stellen Sie zunächst sicher, dass Ihre Datenspalten dieselbe Breite haben.
  • Fügen Sie dann zwischen jedem Paar von Datenspalten eine weitere Spalte mit einer Breite von 2 ein.
  • Geben Sie ein einzelnes Komma in jede der eingefügten Spalten ein und kopieren Sie die Länge der Daten nach unten.
  • Speichern Sie schließlich das Arbeitsblatt als formatierte Textdatei (durch Leerzeichen getrennt) (* .prn).

Ein Vorteil dieser Alternative besteht darin, dass die Formatierung Ihrer Daten erhalten bleibt. Wenn Sie die Daten durch Komma formatieren möchten oder nur eine Dezimalstelle anzeigen möchten, bleibt Ihre Formatierung in der PRN-Datei erhalten.

Können Sie dies so einstellen, dass (i) der Raum begrenzt und (ii) ausgerichtet ist, als OP-Anforderung und (ich würde vermuten) (iii) mit Leerzeichen bereits in einigen Zellen (dh Textwörtern)? pnuts vor 11 Jahren 0
zB mit {= MAX (LEN (A1: C1)) + 1} in 'E1' und `= REPT (" ", E1-LEN (A1)) & A1 & REPT (" "), E1-LEN (B1)) & B1 & REPT ( "", E1-LEN (C1)) & C1 "in" D1 "(unter der Annahme einer nicht proportionalen Schriftart im Textdokument). -Speichern, da usw. einfacher sein kann! pnuts vor 11 Jahren 0
pnuts vorgeschlagenen Verbesserung ist genau richtig. Ich habe meine Antwort mit einer anderen Alternative aktualisiert, die "Speichern unter" verwendet. chuff vor 11 Jahren 1
Wie ich in der Frage gesagt habe, ist das Speichern als keine Option. Funktioniert die REPT-Lösung mit Copy-Paste? Ich akzeptiere auch noch nicht, da ich etwas weniger umständliches möchte. einpoklum vor 11 Jahren 0
0
Michael

Sie können Ihre Daten in Word kopieren und dann Suchen und Ersetzen (Strg + H) verwenden, um die Registerkarten durch Leerzeichen zu ersetzen.

  1. Öffnen Sie und fügen Sie Daten in Word ein
  2. Drücken Sie Ctrl+H
  3. Mehr >>
  4. Besondere
  5. Leerraum
  6. Setzen Sie ein Leerzeichen in das Ersetzen mit:
  7. Alles ersetzen
Das ist nicht das, wonach ich gefragt habe, sorry - die Spaltenbreiten werden sich unterscheiden. einpoklum vor 9 Jahren 0