Tabelle ohne HTML

Hallo,

ich habe eine Tabelle mit HTML (oder css) in einer Spalte. Ich will den HTML Text in Text plain umwandeln.

Wie mache ich das?
Betriebssystem Win XP, Tabelle OpenOffice.org Calc

Bild einer Beispieltabelle
http://www.abload.de/image.php?img=beispieltabelleof…

In der Beispieltabelle habe ich den HTML Text in Spalte B, mein gewünschtes Ergebnis in Spalte D. Wie erhalte ich das in D zu sehende Ergebnis?

In der Beispieltabelle ist der HTML Text und Ergebnistext immer gleich, im Original unterschiedlich.

Ich weiß, wie ich HTML in einer einzelnen Zelle in Text plain umwandeln kann - durch kopieren in ein anderen Programm, umwandeln, rückkopieren.

Meine Orignial-Tabelle hat aber gut 1000 Zeilen und es ist nicht praktikabel die Inhalte 1000x hin und her zu kopieren.

Was tun?

Stephanie

Hallo

Ich weiß nicht ob ich dich richtig verstanden hab, aber probier mal folgendes:

-Spalte B durch Klick auf das B markieren, dann Strg+C
-Spalte D durch Klick auf das D markieren, dann Strg+V, Markierung jetzt nicht entfernen
-Bearbeiten->Suchen und Ersetzen wählen
-Im Feld ‚Suchen nach‘ folgendes eingeben: (]*&gt:wink:*
-Im Ersetzen-Feld ein Leerzeichen eingeben, in den weiteren Optionen ‚Nur in Selektion‘ und ‚Regulärer Ausdruck‘ wählen
-Auf ‚Ersetze alle‘ klicken

Damit wird jede Aneinanderreihung von HTML-Tags in ein Leerzeichen umgewandelt.
Das funktioniert nicht mit jedem HTML-Code fehlerfrei, aber mit deinem Beispiel sollte es klappen. Eventuell entstehen zu viele Leerzeichen oder der HTML-Code bleibt teilweise erhalten. Wenn das passieren sollte, dann schreib einfach nochmal ein neues Beispiel.

sigterm

Hallo

Ich weiß nicht ob ich dich richtig verstanden hab, aber
probier mal folgendes:

Ja, alles richtig verstanden und geniale Anleitung, es hat geklappt! Danke!

Der ganze unordentliche HTML weg. Einzig verbleibender Rest waren einige & n b s p ;
(ohne Leerzeichen, aber ohne Leerzeichen geschrieben erscheint hier statt & n b s p ; einfach nur eine leere Zeile)
Ich habe keine Ahnung, was für ein Befehl & n b s p ; mal war.

Aber
& n b s p ;

habe ich gerade in einem zweiten Suchen und Ersetzen Schritt auch noch erfolgreich entfernt.

Sind die „regulären Ausdrücke“ speziell dazu gedacht HTML zu ersetzten?

Stephanie

nbsp macht geschütze Leerzeichen. Von der Sorte gibts noch mehr: http://de.selfhtml.org/html/referenz/zeichen.htm#ben…

Reguläre Ausdrücke sind immer dann praktisch, wenn man nicht aufs Zeichen genau weiß, wonach man sucht. HTML-Tags beginnen immer mit einem sind und zum Abschluss kommt ein >. Welche Zeichen das aber in der Mitte genau sind, ist unbekannt.

Als regulärer Ausdruck sieht das dann so aus: ]*>
Das am Ende auch. Mit [^…(hier einige Zeichen)] bezeichnet man ein beliebiges Zeichen, welches aber nicht mit einem der aufgelisteten Zeichen übereinstimmen darf. [^] bedeutet also „Ein Zeichen, welches weder ist“. Das * gibt an, das von dieser Sorte Zeichen beliebig viele (auch 0) vorkommen dürfen.

Will man mehrere HTML-Tags mit einem Mal erwischen, kann man das Ganze noch mal in Klammern setzen und ein * dahinter schreiben (Wobei mir gerade einfällt, dass hier ein + besser wäre, welches „mindestens ein mal“ bedeutet). Das gefunden. Aber sowas kommt in HTML ja eh nicht vor und wenn doch, dann wollte man es ja auch mit weghaben.

(. bedeutet beliebiges Zeichen) wäre aber nicht ausreichend, denn dann würde auch Text als ein HTML-Tag erkannt und das „Text“ wäre mit weg. Reguläre Ausdrücke sind nämlich „gierig“, es wird immer ein möglichst großer Teil des Textes ausgewählt.

sigterm

2 Like

Hallo,

ich habe jetzt eine zweite Frage:

ich habe in einer Spalte in der oberen Hälfte jeder Zelle individuellen Text, in der unteren Hälfte einen Textbaustein in mehreren Zeilen. Der Textbaustein soll weg. Den ganzen Textbaustein bekomme ich auf einmal mit Suchen und Ersetzen nicht weg - es erscheint die Meldung nicht gefunden.

Die Worte sind ja irrelevant, ansonsten sieht der Text so aus:

Text. Text - Text

  • Text, Text
    Text 1. Text (Text)/ Text / Text 2.
    Text 3. Text 4. Text
    Text 6. Text § Text 7.
    Text

Was ist das Problem daran? Die Zeilenumbrüche? Oder was sonst?

Diese Zeile
Text 1. Text (Text)/ Text / Text 2.
macht er auf einmal auch nicht weg.

Stephanie

Hallo,

danke noch mal für die weitere Erklärung.

Stephanie

Die Zeilenumbrüche können schon ein Problem sein. Das Regex-Zeichen für Zeilenumbruch ist \n

Wenn du allerdings Reguläre Ausdrücke benutzt, dann haben Zeichen wie ()+*.[] eine Sonderbedeutung. Wenn du wirklich das Zeichen meinst, dann musst du ein \ voranstellen, also z.B. (

http://www.ooowiki.de/SuchenUndErsetzen/Regul%C3%A4r…

sigterm

Hallo,

Die Zeilenumbrüche können schon ein Problem sein. Das
Regex-Zeichen für Zeilenumbruch ist \n
Wenn du allerdings Reguläre Ausdrücke benutzt, dann haben
Zeichen wie ()+*.[] eine Sonderbedeutung. Wenn du wirklich das
Zeichen meinst, dann musst du ein \ voranstellen, also z.B. (

Ich weiß nicht ob \n dazwischen ist, dass wird ja in der normalen Tabellenansicht nicht sichtbar angezeigt :smile:

Wo ich jetzt \ voranstellen sollte ist mir aber leider noch nicht klar.

http://www.ooowiki.de/SuchenUndErsetzen/Regul%C3%A4r…

Die Seite ist sehr nützlich und ich kannte sie noch nicht.

Aber wärst du noch einmal so freundlich, mir die fertige Lösung zu schreiben?

Das
Schif{1,2}.?fahrt
und
* für beliebig oft: .*
Beispiel lässt mich vermuten, dass es möglich sein sollte diesen Textbaustein

Textstart. Text - Text

  • Text, Text
    Text 1. Text (Text)/ Text / Text 2.
    Text 3. Text 4. Text
    Text 6. Text § Text 7.
    Textende

der exakt gleich in tausend Zellen steht

etwa so zu ersetzten bzw. zu entfernen Textstart{.*}.?Textende

Bei näherer Betrachtung scheint das .* allerdings nur für’s Suchen innerhalb eines Wortes vorgesehen und stoppt beim nächsten Leerzeichen oder Absatz. Kann man das umgehen?

Alternativ habe ich hier noch eine andere Funktion gefunden
http://www.ooowiki.de/CalcFunktionenText/Zeichenketten
Zellen aufteilen

Falls es eine Möglichkeit gibt, die Zelle zu Teilen, in den Teil vor Textbaustein, beginnend mit Textstart (Auf meiner…) und in den Teil nach Textstart bis Textende wäre mir das auch völlig recht.

Das Hindernis scheinen derzeit die Leerzeichen und Zeilenumbrüche in meinem Textbaustein. Gibt es da eine Lösung?

Stephanie

Ich weiß nicht ob \n dazwischen ist, dass wird ja in der
normalen Tabellenansicht nicht sichtbar angezeigt :smile:
Wo ich jetzt \ voranstellen sollte ist mir aber leider noch
nicht klar.

Wenn du nach Zeilenumbrüchen suchen willst, dann geht das nicht mit der normalen Suche, denn in die eine Suchzeile lassen sich ja keine Zeilenumbrüche eingeben. Also musst du reguläre Ausdrücke aktivieren. Dann kannst du einen Zeilenumbruch durch ein \n angeben. Jetzt gibt es aber ein Problem: Du willst auch nach Zeichen suchen die in regulären Ausdrücken eine Sonderbedeutung haben. Z.B. steht . für „beliebiges Zeichen“, + für „vorheriges Zeichen mindestens ein mal“, * für „vorheriges Zeichen beliebig oft“, ? für „vorheriges Zeichen ein oder kein Mal“, mit [] gibt man sogenannte Zeichenklassen an, mit () gruppiert man, mit ^ bezeichnet man den Zeilenanfang und mit $ das Zeilenende.
Wenn du jetzt z.B. wirklich ein . meinst, dann darfst du nicht einfach . schreiben, sondern .
Das gleiche gilt für die anderen Sonderzeichen.

Aber wärst du noch einmal so freundlich, mir die fertige
Lösung zu schreiben?

Textstart\. Text - Text
- Text, Text\nText 1\. Text \(Text\)/ Text / Text 2\.\nText 3\. Text 4\. Text\nText 6\. Text § Text 7\.\nTextende

Schif{1,2}.?fahrt

Das bedeutet:
Schi genau ein mal
f ein oder zwei mal (wegen {1,2})
beliebiges Zeichen ein oder kein mal (wegen ?)
fahrt genau ein mal

Beispiel lässt mich vermuten, dass es möglich sein sollte
Textstart{.*}.?Textende

Das f{1,2} kannst du also ganz weglassen, und das ? durch ein * ersetzen.
Da käme dann Textstart.*Textende heraus. Vielleicht funktioniert es, aber wie ich schon geschrieben hab sind reguläre Ausdrücke „gierig“. Wenn du da sowas wie
„Textstart unwichtiges Zeugs Textende hier die wichtigen Sachen Textende“
hast und ersetzt Textstart.*Textende durch nichts, dann ist alles weg, auch das wichtige.

Bei näherer Betrachtung scheint das .* allerdings nur für’s
Suchen innerhalb eines Wortes vorgesehen und stoppt beim
nächsten Leerzeichen oder Absatz. Kann man das umgehen?

Nach mehreren Worten zu suchen sollte kein Problem sein, Zeilenumbrüche machen aber Schwierigkeiten. Eigentlich bedeutet .* ja „beliebig viele Zeichen beliebiger Art“. Aber offensichtlich zählt für OpenOffice ein Zeilenumbruch nicht zu den „Zeichen beliebiger Art“. Du kannst aber schreiben (.|\n)* Das bedeutet "beliebiges Zeichen oder Zeilenumbruch, und das beliebig oft.

sigterm

1 Like

Hallo,

Da käme dann Textstart.*Textende heraus. Vielleicht
funktioniert es, aber wie ich schon geschrieben hab sind
reguläre Ausdrücke „gierig“. Wenn du da sowas wie
„Textstart unwichtiges Zeugs Textende hier die wichtigen
Sachen Textende“

Nein, ich habe
individuellen wichtigen Text

und nachfolgend soll alles weg Textbaustein
Textstart. Text - Text

  • Text, Text
    Text 1. Text (Text)/ Text / Text 2.
    Text 3. Text 4. Text
    Text 6. Text § Text 7.
    Textende

Bei näherer Betrachtung scheint das .* allerdings nur für’s
Suchen innerhalb eines Wortes vorgesehen und stoppt beim
nächsten Leerzeichen oder Absatz. Kann man das umgehen?

Nach mehreren Worten zu suchen sollte kein Problem sein,
Zeilenumbrüche machen aber Schwierigkeiten. Eigentlich
bedeutet .* ja „beliebig viele Zeichen beliebiger Art“. Aber
offensichtlich zählt für OpenOffice ein Zeilenumbruch nicht zu
den „Zeichen beliebiger Art“.

Ja, genau, Textstart{.*}.?Textende wurde nicht gefunden.

Du kannst aber schreiben (.|\n)*
Das bedeutet "beliebiges Zeichen oder Zeilenumbruch, und das
beliebig oft.

Super, das hat geklappt! Darauf wäre ich selber echt nicht gekommen. Es hat so gut funktioniert, dass ich die anderen komplizierteren Optionen nicht mehr probiert habe. (.|\n)* speichere ich definitiv auf meinem PC für zukünftige Verwendung. Das sollte in die ooowiki Liste rein, denn das fehlt denen definitiv.

Stephanie

Ja, genau, Textstart{.*}.?Textende wurde nicht gefunden.

Dieser Ausdruck ergibt auch keinen Sinn.

sigterm

Hallo,

Ja, genau, Textstart{.*}.?Textende wurde nicht gefunden.

Dieser Ausdruck ergibt auch keinen Sinn.

sorry, ich bin PC-Sprache beinahe Analphabet, {.*}.? hatte ich übernommen von Schiffahrt {1,2}.?

Aber da ich ja dann sowieso (.|\n)* verwendet habe brauche ich auch keinen anderen Ausdruck mehr :smile:

Stephanie