Kopieren / Einfügen von Daten von SQL Server nach Excel Text in mehrere Spalten aufteilen?

14

Beim Einfügen von Daten aus dem Ergebnisraster von SQL Server 2005 in eine Excel 2007-Tabelle ist ein Problem aufgetreten.

Ich habe eine Abfrage in SQL Server, die 2 Spalten zurückgibt (eine Zahlenspalte und eine Textspalte)

Hier kann ich auf einem Computer problemlos kopieren (Rechtsklick> Kopieren) und dann einfach mit der rechten Maustaste klicken und in eine Excel-Tabelle einfügen. kein Problem.

Wenn ich hier auf einem anderen Computer versuche, in Excel einzufügen, wird die Textspalte aufgeteilt und der Text basierend auf Leerzeichen zwischen Wörtern in mehrere Spalten eingefügt.

Zum Beispiel, wenn eine der Zeilen hat ...

Fügen Sie mich bitte ein

... dann wird beim Einfügen in Excel der Text aufgeteilt und jedes Wort in eine separate Spalte in Excel eingefügt.

Wir haben versucht, die Optionen in SQL Server und Excel mit denen des Computers zu vergleichen, auf dem es ordnungsgemäß funktioniert. Es werden jedoch keine Unterschiede festgestellt.

Irgendwelche Ideen willkommen

Vielen Dank

Paul
quelle

Antworten:

20

Wenn Sie kürzlich Text in Spalten verwendet haben, werden diese Einstellungen auf den Einfügevorgang angewendet. Ich kann mich nicht daran erinnern, dass dies vor Excel 2007 passiert ist, aber es könnte so sein. Ich muss immer zurückgehen und es wieder auf tabulatorgetrennt setzen, bevor ich wieder mit dem Kopieren und Einfügen beginne.

Justin Moore
quelle
ja du hast recht - wir haben es geknackt - danke
Paul
Es funktionierte. Vielen Dank.
Sagar Shirke
7

Vor dem Einfügen der Ergebnisse: Daten → Text in Spalten

  • Ursprünglicher Datentyp: Check Delimited
  • Nächster
  • Trennzeichen: Deaktivieren Sie die Option Raum
  • Nächster
  • Fertig

Fügen Sie zum Schluss die Ergebnisse ein.

Hector Negrete
quelle
1

Haben Sie versucht, die Excel-Startvorlagen auf dem Computer zu ersetzen, auf dem das Problem auftritt? Möglicherweise ist ein Makro definiert, das von Ihrer Einfügeoperation ausgelöst wird. Gemäß dem Microsoft Knowledge Base-Artikel 924460 werden die Vorlagen an den folgenden Speicherorten gespeichert:

Standardmäßig werden Benutzervorlagendateien an folgendem Speicherort gespeichert:

  • In Windows XP C: \ Dokumente und Einstellungen \\ Anwendungsdaten \ Microsoft \ Vorlagen
  • In Windows Vista oder Windows 7 C: \ Benutzer \\ AppData \ Roaming \ Microsoft \ Templates

quelle
1

Ich habe festgestellt, dass, wenn ich Excel beende, neu starte und meine Tabelle neu lade, der Text in Spaltenoptionen gelöscht wird, sodass das Einfügen wieder wie erwartet funktioniert.

Hectors Antwort ist insofern schön, als Sie Excel nicht beenden müssen, aber das funktioniert auch und ist ziemlich schnell und einfach.

Gundark
quelle
Ich denke, einige der Excel-Dateien, die Sie im System haben, haben die Standardoptionen geändert. Ich denke also, anstatt mit der Konfiguration oder der Datenumwandlung herumzuspielen, ist es einfach, alle zu schließen und wieder zu öffnen.
Juan Acosta
0

Wenn Ihre Tabelle ein nvarchar (max) -Feld enthält, verschieben Sie dieses Feld an den unteren Rand Ihrer Tabelle. Falls sich der Feldtyp von nvarchar (max) unterscheidet, identifizieren Sie das oder die fehlerhaften Felder und verwenden Sie dieselbe Technik. Speichern Sie es. Wählen Sie die Tabelle in SQL erneut aus. Wenn Sie nicht ohne Änderungen speichern können, können Sie relevante Warnungen in TOOLS | vorübergehend deaktivieren OPTIONEN. Diese Methode birgt kein Risiko. Kopieren Sie die SQL-GRID-Anzeige mit Überschriften nach Excel, und fügen Sie sie ein. Die Daten können immer noch einen Wagenrücklauf aufweisen, aber mindestens Ihre Daten befinden sich alle in derselben Zeile. Wählen Sie dann alle Zeilendatensätze aus und sortieren Sie die ID-Spalte benutzerdefiniert. Alle Ihre Aufzeichnungen sollten jetzt intakt und fortlaufend sein.

XGIS
quelle
0

Eine ähnliche Situation, die ich von Zeit zu Zeit erlebe, besteht darin, dass Zeilen in mehrere Zeilen aufgeteilt werden, wenn Benutzer in einer Spalte, die für Kommentare vorgesehen ist, ein Wagenrücklauf- / Zeilenvorschubzeichen verwenden. Ich fand eine Lösung , die für SQL 2012/2014 arbeitet hier .

Dies ist anscheinend kein Problem in früheren Versionen von SQL Server. Wenn Sie den Link nicht durchgehen möchten, können Sie das Problem in Ihrem SQL folgendermaßen beheben:

REPLACE(REPLACE([YourColumnHere], CHAR(10), ''), CHAR(13), '')
fujiiface
quelle
0

Lösung für dieses Problem in Excel nach dem Einfügen der Klickoption.

"Use Text Import Wizard" -> Delimited -> Next Check "Tab", aktivieren Sie "Consecutive Delimeter as one" -> Next Finish

Adil
quelle