[Gelöst]: Lange formatierte Zeichenketten ersetzen
Moderator: Moderatoren
-
- **
- Beiträge: 20
- Registriert: Sa, 30.07.2016 11:23
[Gelöst]: Lange formatierte Zeichenketten ersetzen
Hallo zusammen,
zwei Fragen zu Calc:
1) Lange Zeichenketten ersetzen
Beispiel eines Zelleninhalts
======================================= Anf
Essen und Trinken,
Wellness / Gesundheit,
Workshop / Seminar,
======================================= Ende
Die Zelle wurde gefüllt durch Copy/Paste aus einer Webseite und enthält wahrscheinlich (mir unbekannte) Steuerzeichen. Ich habe versucht, den obigen Inhalt in "Suchen" einzugeben und wollte dann folgenden Inhalt erhalten:
======================================= Anf
Essen und Trinken, Wellness / Gesundheit, Workshop / Seminar,
======================================= Ende
Ich habe alle möglichen Einstellungen probiert. Nichts hat geklappt. Kopiere ich den Zelleninhalt und gebe ihn unter "Suchen" ein und klicke auf "Suchen", dann lautet die Anzeige "Suchbegriff nicht gefunden", obwohl etliche Zellen diese identische Zeichenkette enthalten.
Die einzige Manipulations-Möglichkeit gelang bisher durch manuelles Ctrl-X (Ausschneiden) des ungewünschten Zellenteils jeder einzelnen Zelle, was bei mehr als 100 Zellen etwas mühsam ist.
2) Makro in "Englisch" möglich?
Am liebsten wäre mir ein Macro, das ich immer wieder benutzen kann. Ich kenne mich aber nur mit MS-Office-Makros aus. Die LO-Makros sind doch etwas unterschiedlich. Kann mir da jemand, der sich auskennt, ein Beispiel-Makro (möglichst in Englisch !!) für diesen Zweck auf die Schnelle zusammenstellen. Es muß nicht perfekt sein, nur die Richtung ungefähr, dann helfe ich mir schon selbst.
Danke erstmal!
..
zwei Fragen zu Calc:
1) Lange Zeichenketten ersetzen
Beispiel eines Zelleninhalts
======================================= Anf
Essen und Trinken,
Wellness / Gesundheit,
Workshop / Seminar,
======================================= Ende
Die Zelle wurde gefüllt durch Copy/Paste aus einer Webseite und enthält wahrscheinlich (mir unbekannte) Steuerzeichen. Ich habe versucht, den obigen Inhalt in "Suchen" einzugeben und wollte dann folgenden Inhalt erhalten:
======================================= Anf
Essen und Trinken, Wellness / Gesundheit, Workshop / Seminar,
======================================= Ende
Ich habe alle möglichen Einstellungen probiert. Nichts hat geklappt. Kopiere ich den Zelleninhalt und gebe ihn unter "Suchen" ein und klicke auf "Suchen", dann lautet die Anzeige "Suchbegriff nicht gefunden", obwohl etliche Zellen diese identische Zeichenkette enthalten.
Die einzige Manipulations-Möglichkeit gelang bisher durch manuelles Ctrl-X (Ausschneiden) des ungewünschten Zellenteils jeder einzelnen Zelle, was bei mehr als 100 Zellen etwas mühsam ist.
2) Makro in "Englisch" möglich?
Am liebsten wäre mir ein Macro, das ich immer wieder benutzen kann. Ich kenne mich aber nur mit MS-Office-Makros aus. Die LO-Makros sind doch etwas unterschiedlich. Kann mir da jemand, der sich auskennt, ein Beispiel-Makro (möglichst in Englisch !!) für diesen Zweck auf die Schnelle zusammenstellen. Es muß nicht perfekt sein, nur die Richtung ungefähr, dann helfe ich mir schon selbst.
Danke erstmal!
..
Zuletzt geändert von MeckOffice am Mo, 10.06.2019 22:18, insgesamt 1-mal geändert.
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
-
- *******
- Beiträge: 1177
- Registriert: So, 14.05.2017 16:11
Re: Frage: Lange formatierte Zeichenketten ersetzen
Hallo,
VG Peter
Ein Link zu der Webseite würde auch helfen.Die Zelle wurde gefüllt durch Copy/Paste aus einer Webseite...
VG Peter
Win 11 (x64) ▪ LibreOffice 24.8.1.2 (x64) ▪ AOO Portable 4.1.15
Wurde die Frage zutreffend beantwortet bitte den Betreff der Eingangsfrage mit [GELÖST] ergänzen. Beschreibung
Wurde die Frage zutreffend beantwortet bitte den Betreff der Eingangsfrage mit [GELÖST] ergänzen. Beschreibung
-
- **
- Beiträge: 20
- Registriert: Sa, 30.07.2016 11:23
Re: Frage: Lange formatierte Zeichenketten ersetzen
Danke zusammen,
anbei als Anhang eine Muster-Excel-Datei mit der Spalte, um die es geht, also Löschung der langen Leerräume.
Zusätzlich bin ich gerade dabei, mich in die LO-Makrotechnik einzuarbeiten, die sich doch stark von MS-VBA unterscheidet, um derartige Aufgaben künftig schneller lösen zu können. Dabei bin ich auf die Möglichkeit gestoßen, Python statt Star-Basic-Skripte in LO zu verwenden, was allerdings zusätzliche Lernzeit für Python bedeuten würde.
Ich wollte zwar Python ohnehin lernen, weil es mir wie ein Plattform-übergreifendes (Win & Linux) Vis.Basic erscheint, weiß aber nicht, wie groß der Lernaufwand dafür ist und ob ich mich damit momentan zeitlich nicht etwas verzettele.
Randbemerkung: Neben Vis.Basic, MS-VBA und der gesamten MS-Off.Palette ich noch einige Erfahrung mit PHP, MySQL, Turbo-Pascal/Delphi
Hat jemand Erfahrung mit Python und kann mir ein paar Hinweise geben?
Danke!
anbei als Anhang eine Muster-Excel-Datei mit der Spalte, um die es geht, also Löschung der langen Leerräume.
Zusätzlich bin ich gerade dabei, mich in die LO-Makrotechnik einzuarbeiten, die sich doch stark von MS-VBA unterscheidet, um derartige Aufgaben künftig schneller lösen zu können. Dabei bin ich auf die Möglichkeit gestoßen, Python statt Star-Basic-Skripte in LO zu verwenden, was allerdings zusätzliche Lernzeit für Python bedeuten würde.
Ich wollte zwar Python ohnehin lernen, weil es mir wie ein Plattform-übergreifendes (Win & Linux) Vis.Basic erscheint, weiß aber nicht, wie groß der Lernaufwand dafür ist und ob ich mich damit momentan zeitlich nicht etwas verzettele.
Randbemerkung: Neben Vis.Basic, MS-VBA und der gesamten MS-Off.Palette ich noch einige Erfahrung mit PHP, MySQL, Turbo-Pascal/Delphi
Hat jemand Erfahrung mit Python und kann mir ein paar Hinweise geben?
Danke!
- Dateianhänge
-
- Muster_279.xlsx
- (9.62 KiB) 163-mal heruntergeladen
Zuletzt geändert von MeckOffice am Mo, 10.06.2019 10:49, insgesamt 1-mal geändert.
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
-
- **
- Beiträge: 20
- Registriert: Sa, 30.07.2016 11:23
Re: Frage: Lange formatierte Zeichenketten ersetzen
Vorrangig ist mir zunächst die möglichst einfache Beseitigung der Leeräume in der Tabelle ohne viel Handarbeit!
Alles andere kommt danach.
Alles andere kommt danach.
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
-
- **
- Beiträge: 20
- Registriert: Sa, 30.07.2016 11:23
Re: Frage: Lange formatierte Zeichenketten ersetzen
Spukt es hier?
1) Beim Ankllicken des Benachrichtig.Links in meiner Mail erscheint 2) Der Beitrag von Mondblatt24 erscheint hier nicht mehr
3) Meine Antwort darauf ebenfalls nicht.
??? Rätselhaft !!
1) Beim Ankllicken des Benachrichtig.Links in meiner Mail erscheint 2) Der Beitrag von Mondblatt24 erscheint hier nicht mehr
3) Meine Antwort darauf ebenfalls nicht.
??? Rätselhaft !!
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
-
- *******
- Beiträge: 1177
- Registriert: So, 14.05.2017 16:11
Re: Frage: Lange formatierte Zeichenketten ersetzen
Hallo MeckOffice,
Zu Deiner Frage:
Probier folgendes aus:
Suchen: \n|\s{2}
Ersetzen: bleibt leer
Gruß Peter
PS: Wie ich darauf komme? Ganz einfach eine Zelle kopiert und unformatiert in Writer eingefügt. So habe ich gesehen was für Formatierungszeichen (Strg+F10) sich in der Zelle versteckt haben.
Ja, weil ich ihn gelöscht habe nachdem Du den Anhang oben eingefügt hast, und der Beitrag so gegenstandslos war.2) Der Beitrag von Mondblatt24 erscheint hier nicht mehr
Zu Deiner Frage:
Probier folgendes aus:
Suchen: \n|\s{2}
Ersetzen: bleibt leer
Gruß Peter
PS: Wie ich darauf komme? Ganz einfach eine Zelle kopiert und unformatiert in Writer eingefügt. So habe ich gesehen was für Formatierungszeichen (Strg+F10) sich in der Zelle versteckt haben.
- Dateianhänge
-
- So sehen die Zellen aus.odt
- (8.29 KiB) 126-mal heruntergeladen
Win 11 (x64) ▪ LibreOffice 24.8.1.2 (x64) ▪ AOO Portable 4.1.15
Wurde die Frage zutreffend beantwortet bitte den Betreff der Eingangsfrage mit [GELÖST] ergänzen. Beschreibung
Wurde die Frage zutreffend beantwortet bitte den Betreff der Eingangsfrage mit [GELÖST] ergänzen. Beschreibung
-
- **
- Beiträge: 20
- Registriert: Sa, 30.07.2016 11:23
Re: Frage: Lange formatierte Zeichenketten ersetzen
Danke, aber leider noch kein Erfolg! So sieht meine Suche aus. Anzeige: Suchbegriff nicht gefunden!
Bin ich zu blöd?
Hast Du es selbst mal probiert an meiner Muster-Tabelle?
Könnte es an irgendwelchen sonstigen Einstellungen liegen?
Hast Du es selbst mal probiert an meiner Muster-Tabelle?
Könnte es an irgendwelchen sonstigen Einstellungen liegen?
Zuletzt geändert von MeckOffice am Mo, 10.06.2019 11:47, insgesamt 1-mal geändert.
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
-
- *******
- Beiträge: 1177
- Registriert: So, 14.05.2017 16:11
Re: Frage: Lange formatierte Zeichenketten ersetzen
Hallo,
Reguläre Ausdrücke ankreuzen.
Peter
Reguläre Ausdrücke ankreuzen.
Peter
Win 11 (x64) ▪ LibreOffice 24.8.1.2 (x64) ▪ AOO Portable 4.1.15
Wurde die Frage zutreffend beantwortet bitte den Betreff der Eingangsfrage mit [GELÖST] ergänzen. Beschreibung
Wurde die Frage zutreffend beantwortet bitte den Betreff der Eingangsfrage mit [GELÖST] ergänzen. Beschreibung
-
- **
- Beiträge: 20
- Registriert: Sa, 30.07.2016 11:23
Re: Frage: Lange formatierte Zeichenketten ersetzen
Hallo Peter,
danke vielmals, es hat endlich geklappt!
Also bin ich doch wohl zu blöd! Dabei hatte ich doch eigentlich sämtliche Knöpfe gedrückt ...usw.
Jetzt muß ich mir dann doch ein Makro basteln, damit ich nicht jedesmal den Kopf einschalten muß!
MfG, Kurt
danke vielmals, es hat endlich geklappt!
Also bin ich doch wohl zu blöd! Dabei hatte ich doch eigentlich sämtliche Knöpfe gedrückt ...usw.
Jetzt muß ich mir dann doch ein Makro basteln, damit ich nicht jedesmal den Kopf einschalten muß!
MfG, Kurt
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Re: Frage: Lange formatierte Zeichenketten ersetzen
z.B.:
Gruß
Stephan
Code: Alles auswählen
Sub Zellen_bereinigen()
blatt = ThisComponent.CurrentController.ActiveSheet
rd = blatt.createReplaceDescriptor()
rd.setSearchString("\n|\s{2}")
rd.setReplaceString("")
rd.SearchWords = False
rd.SearchRegularExpression = True
blatt.replaceAll(rd)
MsgBox "Fertig"
End Sub
Stephan
-
- **
- Beiträge: 20
- Registriert: Sa, 30.07.2016 11:23
Re: Frage: Lange formatierte Zeichenketten ersetzen
Ja, super, Stefan!
Was für ein Service! Danke Dir!
Das ist jetzt wahrscheinlich Star.Basic!
Wenn ich hoffentlich demnächst mehr Zeit habe, werde ich das mal mit Python versuchen.
Einstweilen herzlichen Dank an Euch. Ich empfehle Euch weiter!
MfG, Kurt
Was für ein Service! Danke Dir!
Das ist jetzt wahrscheinlich Star.Basic!
Wenn ich hoffentlich demnächst mehr Zeit habe, werde ich das mal mit Python versuchen.
Einstweilen herzlichen Dank an Euch. Ich empfehle Euch weiter!
MfG, Kurt
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Re: Frage: Lange formatierte Zeichenketten ersetzen
Hallo
Da das jetzt komplett auf API-methoden aufsetzt, geht das in python praktisch genauso:
Die Einrückung dient in python nicht nur der Lesbarkeit, sondern ist auch semantischer Bestandteil der Sprache, ( und soll per Konvention mit 4 Leerzeichen pro Einrückungsebene erfolgen ).
Die beiden Wahrheitswerte müssen genauso geschrieben werden wie im Quelltext.
Da das jetzt komplett auf API-methoden aufsetzt, geht das in python praktisch genauso:
Code: Alles auswählen
def Zellen_bereinigen():
doc = XSCRIPTCONTEXT.getDocument()
blatt = doc.CurrentController.ActiveSheet
rd = blatt.createReplaceDescriptor()
rd.setSearchString("\n|\s{2}")
rd.setReplaceString("")
rd.SearchWords = False
rd.SearchRegularExpression = True
blatt.replaceAll(rd)
Die beiden Wahrheitswerte müssen genauso geschrieben werden wie im Quelltext.
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- **
- Beiträge: 20
- Registriert: Sa, 30.07.2016 11:23
Re: Frage: Lange formatierte Zeichenketten ersetzen
Danke auch Dir Karolus!Karolus hat geschrieben: ↑Mo, 10.06.2019 17:20 Die Einrückung dient in python nicht nur der Lesbarkeit, sondern ist auch semantischer Bestandteil der Sprache, ( und soll per Konvention mit 4 Leerzeichen pro Einrückungsebene erfolgen ).
Die beiden Wahrheitswerte müssen genauso geschrieben werden wie im Quelltext.
Die beiden Code-Blöcke haben ja eine erstaunliche Ähnlichkeit.
Wenn ich richtig verstehe, kennzeichnet die Einrückung die Zusammengehörigkeit des Code-Blocks und ersetzt dadurch quasi das "end sub" als Block-Ende im Basic.
Mit der Schreibweise der Wahrheitswerte meinst Du sicher die beiden Leerzeichen vor und hinter dem "=" Gleichheitszeichen, die in anderen Sprachen unbedeutend sind. Richtig?
D.h., man muss insgesamt pixelgenau arbeiten. Ich hoffe, es gibt Editoren, die dabei etwas helfen. Arbeitest Du mit PyCharm oder mit welchem/r Editor/IDE? Und das Python-Plugin übernimmt die Übersetzung gegenüber LibreOffice. Richtig?
.
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Re: Frage: Lange formatierte Zeichenketten ersetzen
Richtig, das gilt auch für alle anderen Arten von Blöcken.MeckOffice hat geschrieben: ↑Mo, 10.06.2019 18:02 Die beiden Code-Blöcke haben ja eine erstaunliche Ähnlichkeit.
Wenn ich richtig verstehe, kennzeichnet die Einrückung die Zusammengehörigkeit des Code-Blocks und ersetzt dadurch quasi das "end sub" als Block-Ende im Basic.
Falsch, WhiteSpace ist dem python-Interpreter weitgehend egal, solange dadurch nicht die Einrückungssemantik verletzt wird.MeckOffice hat geschrieben: ↑Mo, 10.06.2019 18:02 Mit der Schreibweise der Wahrheitswerte meinst Du sicher die beiden Leerzeichen vor und hinter dem "=" Gleichheitszeichen, die in anderen Sprachen unbedeutend sind. Richtig?
Ich meine Schreibweise von True|False. In Basic könntest du z.B. false, FALSE oder faLSE hinschreiben, der Interpreter würde es geduldig hinnehmen.
Ich würde jetzt nicht sagen pixelgenauMeckOffice hat geschrieben: ↑Mo, 10.06.2019 18:02 D.h., man muss insgesamt pixelgenau arbeiten. Ich hoffe, es gibt Editoren, die dabei etwas helfen. Arbeitest Du mit PyCharm oder mit welchem/r Editor/IDE? Und das Python-Plugin übernimmt die Übersetzung gegenüber LibreOffice. Richtig?.
PyCharm ist eine hervorragende IDE aber nicht gerade leichtgewichtig.
Momentan "arbeite" ich mit auf einem Raspberry mit Rasbian-OS da muss der mitgelieferte Thonny-Editor reichen.
Ansonsten nehme ich sehr gerne auch eine interaktive Jupyter-notebook** -instanz um mal schnell ein paar Zeilen Code für LO zu schreiben, und das erledigt auch die Aufgabe per Code-vervollständigung die korrekte Schreibweise zu liefern.
**siehe hier
Was du jetzt genau mit python-plugin meinst, weiss ich nicht, aber die eigentlichen Schnittstellen zwischen LO und python sind vmtl. die Binärdateien uno.(so|exe) res. pyuno.(so|exe) ??
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- **
- Beiträge: 20
- Registriert: Sa, 30.07.2016 11:23
Re: Frage: Lange formatierte Zeichenketten ersetzen
Danke sehr, Karolus, für die ingesamt sehr hilfreichen Informationen!
Einen schönen Rest-Feiertag wünsche ich noch.
MfG, Kurt
Einen schönen Rest-Feiertag wünsche ich noch.
MfG, Kurt
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------
Win7-Prof. (64x) mit LO 5.4.7.2
Linux-Mint (64x) mit LO 6.2.4.2
------------------------------------------------