Excel - neue Zeile nach kopierten Datenfeld mit Leerzeichen

rusty_X

Cadet 4th Year
Registriert
Feb. 2009
Beiträge
81
Aloha!

Ich habe eine SQL Feld welches teilweise 2 Leerzeichen VOR dem eigentlichen Text (welchen ich benötige) stehen.
Dieses Feld/Datensätze möchte ich ins Excel einfügen. Hier habe ich allerdings das Problem das mir das Excel jedes mal eine neue Zeile automatisch generiert.
Ich hab es jetzt mal mit LibreOffice versucht, da ich hier vor dem "einfügen" auswählen kann, welches Character Set (UFT,...) ich wählen kann. Leider ohne erfolg. Natürlich gibt es den Ansatz im SQL das Feld per TRIM das auszubessern, nur sind die Leerezeichen teilweise an verschiedenen Stellen in dem besagten Feld.

*edit: im Notepad/Notepad++ ist der selbe Effekt.

Bin für jeden Tipp dankbar
 
Du könntest die einzelnen Bestandteile normalisieren und anschließend verketten.
 
Habe hier um die 26k Datensätze, wo die oben beschrieben Fälle auftreten. Ich kann mir die nicht alle einzeln raussuchen.
 
Vielleicht geht es so...

Bzgl. der Leerzeichen kannst Du mit Suchen und Ersetzen einfach nach 2 Leerzeichen suchen und sie durch Nichts ersetzen. Einfache Leerzeichen bleiben dabei erhalten.
 
Leerzeichen, die eine neue Zeile in Excel erzeugen? Wie sieht das aus? Vielleicht sind es keine Leerzeichen?!

Kannst ja mal 2 bis 3 Zeilen deiner Daten hier zur Verfügung stellen.
 
  • Gefällt mir
Reaktionen: Scientist
spät, aber doch; diese Funktion wandeln ein in RTF formatiertes SQL Feld in "Text" um:, hat bei mir gefunkt.
-------------------

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[RTF2TXT]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].RTF2TXT
GO

CREATE FUNCTION RTF2TXT
(@In VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
If isnull(@In,'') = '' return ''
If @In not like '{\rtf%' return @In
Declare @len int
Declare @Loc int = 1
Declare @char char(1) = ''
Declare @PrevChar char(1) = ''
Declare @NextChar char(1) = ''
Declare @InMarkup int = 0
Declare @InBrackets int = -1
Declare @Out varchar(max) = ''

Set @len = len(@In)
While @Loc < @len begin
Set @PrevChar = @char
Set @char = SUBSTRING(@In, @Loc, 1)
If @Loc < @len set @NextChar = SUBSTRING(@In, @Loc + 1, 1) else set @NextChar = ''
Set @Loc = @Loc + 1
If @char = '{' and @PrevChar != '\' begin
Set @InBrackets = @InBrackets + 1
Continue
End
If @char = '}' and @PrevChar != '\' begin
Set @InBrackets = @InBrackets - 1
Continue
End
If @char = '\' and @PrevChar != '\' and @NextChar not in ('\','{','}','~','-','_') begin
Set @InMarkup = 1
continue
End
If @char = ' ' or @char = char(13) begin
Set @InMarkup = 0

End
If @InMarkup > 0 or @InBrackets > 0 continue

Set @Out = @Out + @char

End

Set @Out = replace(@Out, '\\', '\')
Set @Out = replace(@Out, '\{', '{')
Set @Out = replace(@Out, '\}', '}')
Set @Out = replace(@Out, '\~', ' ')
Set @Out = replace(@Out, '\-', '-')
Set @Out = replace(@Out, '\_', '-')

WHILE ASCII(@Out) < 33
BEGIN
set @Out = substring(@Out,2,len(@Out))
END

set @Out = reverse(@Out)

WHILE ASCII(@Out) < 33
BEGIN
set @Out = substring(@Out,2,len(@Out))
END

set @Out = reverse(@Out)

RETURN LTRIM(RTRIM(@Out))
End
 
Zurück
Oben