🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst] Zwischenablage
[gelöst] Zwischenablage
Hallo,
ich möchte gerne Daten aus der Zwischenablage per Makro mit ".uno:PasteSpecial" einfügen lassen.
Ich finde aber leider keine Möglichkeit, wie man die Einstellung für die Feldtrenner (bei mir Leerzeichen)
und die Zusammenfassung von Feldtrennern per Makro einstellen und den Dialog beenden kann.
Noch besser wäre, der Dialog wird erst gar nicht angezeigt.
Vielleicht kann mir einer von Euch helfen.
ich möchte gerne Daten aus der Zwischenablage per Makro mit ".uno:PasteSpecial" einfügen lassen.
Ich finde aber leider keine Möglichkeit, wie man die Einstellung für die Feldtrenner (bei mir Leerzeichen)
und die Zusammenfassung von Feldtrennern per Makro einstellen und den Dialog beenden kann.
Noch besser wäre, der Dialog wird erst gar nicht angezeigt.
Vielleicht kann mir einer von Euch helfen.
Zuletzt geändert von DAP am Di 20. Mär 2012, 16:51, insgesamt 1-mal geändert.
Re: Zwischenablage
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Zwischenablage
Hallo DAP
Ich habe auf meiner Makro-Seite 3 Makros zum Umgang mit der Zwischenablage(ohne Dispacher)
Eventuell hilft dir ja das Makro Text aus Zwischenablage.
Wenn du etwas genauer schildern würdest, was du eigentlich machen willst, kann ich dir wahrscheinlich besser helfen.
In der Regel ist es besser, und einfacher, wenn du die Zwischenablage überhaupt nicht benutzt,
sondern eine andere Makro Lösung verwendest.
Gruß Frieder
Ich habe auf meiner Makro-Seite 3 Makros zum Umgang mit der Zwischenablage(ohne Dispacher)
Eventuell hilft dir ja das Makro Text aus Zwischenablage.
Wenn du etwas genauer schildern würdest, was du eigentlich machen willst, kann ich dir wahrscheinlich besser helfen.
In der Regel ist es besser, und einfacher, wenn du die Zwischenablage überhaupt nicht benutzt,
sondern eine andere Makro Lösung verwendest.
Gruß Frieder
Re: Zwischenablage
Hallo,
vielen Dank für Eure Bemühungen.
ich denke der Link von Karo könnte mich schon etwas weiter bringen.
aussehen (kleiner Auszug):
" 4 mpm stat abst Bemerkung
0.001 1.20 2.33 KOK
0.002 3.45 1.66 KUK
0.003 5.20 2.33 2356 KOK
0.004 6.45 4.56 2356
0.001 1.20 2.33 KOK
0.002 3.45 1.66 KUK
0.003 5.20 2.33 559
0.004 6.45 4.56 456"
Die erste Zeile ist die Spaltenbeschriftung, wobei die 4 für die Anzahl der Datenreihen pro Ausgabeblock steht.
Ich dachte, ich könnte die Funktionen verwenden, die auch beim einfügen über den Dialog angeboten werden.
Z.B. die Leerzeichentrenner zusammenfassen, die Behandlung der Zahlen als englische Zahlennotation mit dem
"." statt dem "," und die Bemerkungen, die bei Leerzeichen nicht aufgesplittet werden sollen.
Gruß DAP
vielen Dank für Eure Bemühungen.
ich denke der Link von Karo könnte mich schon etwas weiter bringen.
Ich habe Daten aus einer anderen Anwendung (leider nur über die Zwischenablage), die folgendermaßenFrieder hat geschrieben: Wenn du etwas genauer schildern würdest, was du eigentlich machen willst, kann ich dir wahrscheinlich besser helfen.
In der Regel ist es besser, und einfacher, wenn du die Zwischenablage überhaupt nicht benutzt,
sondern eine andere Makro Lösung verwendest.
aussehen (kleiner Auszug):
" 4 mpm stat abst Bemerkung
0.001 1.20 2.33 KOK
0.002 3.45 1.66 KUK
0.003 5.20 2.33 2356 KOK
0.004 6.45 4.56 2356
0.001 1.20 2.33 KOK
0.002 3.45 1.66 KUK
0.003 5.20 2.33 559
0.004 6.45 4.56 456"
Die erste Zeile ist die Spaltenbeschriftung, wobei die 4 für die Anzahl der Datenreihen pro Ausgabeblock steht.
Ich dachte, ich könnte die Funktionen verwenden, die auch beim einfügen über den Dialog angeboten werden.
Z.B. die Leerzeichentrenner zusammenfassen, die Behandlung der Zahlen als englische Zahlennotation mit dem
"." statt dem "," und die Bemerkungen, die bei Leerzeichen nicht aufgesplittet werden sollen.
Gruß DAP
Re: Zwischenablage
Hallo
Achtung Python!
Schau dir die angehängte Datei mit eingebettetem Pythonscript an, eingefügt wird ab der aktuell selektierten Zelle.
Edit :Änderungen im Code und in der angehängten Datei 22:45
Karo
Achtung Python!
Code: Alles auswählen
import uno
context = XSCRIPTCONTEXT
ctx = uno.getComponentContext()
servicemanager = ctx.ServiceManager
createUnoService = servicemanager.createInstance
def cliptext():
oclip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oConverter = createUnoService("com.sun.star.script.Converter")
oData = oclip.getContents()
oTypes = oData.getTransferDataFlavors()
for elem in oTypes:
if elem.MimeType == "text/plain;charset=utf-16" :
stext = oData.getTransferData( elem )
stext = oConverter.convertToSimpleType( stext, 12 )
return '{0:s}'.format(stext.encode('utf8'))
def paste_lines_to_rows(dummy=None):
doc, sel, sheet = rangeselection()
address = sel.getCellAddress()
c, r = address.Column, address.Row
liste = cliptext()
liste = liste.splitlines()
header = liste[0].split()
header = header[1:]
maxsplit = len(header) -1
makesetarray( sheet, (tuple( header ),), c, r )
r += 1
for line in liste[1:]:
if line:
out = (tuple( line.split(' ', maxsplit )),)
makesetarray( sheet, out, c, r )
r += 1
def rangeselection():
doc = context.getDocument()
sel = doc.getCurrentSelection()
sheet = sel.getSpreadsheet()
return doc , sel , sheet
def makesetarray( sheet , olist,startcol=0,startrow=0):
endrow = len( olist ) -1 + startrow
endcol = len( olist[0] )-1 + startcol
oRange = sheet.getCellRangeByPosition(startcol, startrow,
endcol , endrow)
oRange.setFormulaArray( olist )
Edit :Änderungen im Code und in der angehängten Datei 22:45
Karo
- Dateianhänge
-
- paste_special.ods
- (12.49 KiB) 386-mal heruntergeladen
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Zwischenablage
Hallo Karo,
ich kann die scripts in der Datei weder ausführen noch bearbeiten, wo
kann ich das einstellen? Sicherheit habe ich schon auf niedrig gestellt.
Gruß DAP
ich kann die scripts in der Datei weder ausführen noch bearbeiten, wo
kann ich das einstellen? Sicherheit habe ich schon auf niedrig gestellt.
Gruß DAP
Re: Zwischenablage
Hallo
zuerst musst du die Datei speichern, dann ggf. unter →Extras→Optionen→LO→Sicherheit→Makrosicherheit [x}Mittel einstellen.
Dann sollte in der geöffneten Datei→Extras→Makros→Makros ausführen→paste_special.ods→clip_to_calcrange→paste_lines_to_rows ausführbar sein ?
Alternativ kannst du auch den Quellcode aus meiner letzten Antwort editieren und speichern unter ~/3/user/Scripts/python/Name_deiner_Wahl.py . (siehe →Extras→Optionen→LO→Pfade )
Den Ordner python musst du vmtl. erst erstellen
Karo
zuerst musst du die Datei speichern, dann ggf. unter →Extras→Optionen→LO→Sicherheit→Makrosicherheit [x}Mittel einstellen.
Dann sollte in der geöffneten Datei→Extras→Makros→Makros ausführen→paste_special.ods→clip_to_calcrange→paste_lines_to_rows ausführbar sein ?
Alternativ kannst du auch den Quellcode aus meiner letzten Antwort editieren und speichern unter ~/3/user/Scripts/python/Name_deiner_Wahl.py . (siehe →Extras→Optionen→LO→Pfade )
Den Ordner python musst du vmtl. erst erstellen
Karo
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Zwischenablage
Hallo Karo,
es tut mir Leid, aber ich kann weder python scripte ausführen, noch bearbeiten und auch
nicht neu erstellen. Den Pfad habe ich angelegt wie beschrieben. Die Button erstellen und
bearbeiten sind gar nicht aktivierbar. Basic Makros kann ich hingegen bearbeiten und erstellen.
Gruß DAP
es tut mir Leid, aber ich kann weder python scripte ausführen, noch bearbeiten und auch
nicht neu erstellen. Den Pfad habe ich angelegt wie beschrieben. Die Button erstellen und
bearbeiten sind gar nicht aktivierbar. Basic Makros kann ich hingegen bearbeiten und erstellen.
Gruß DAP
Re: Zwischenablage
Hallo
Ok, das ganze nochmal in Basic:
Funktioniert das?
Karo
Ok, das ganze nochmal in Basic:
Code: Alles auswählen
function cliptext()
oclip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
oConverter = createUnoService("com.sun.star.script.Converter")
oData = oclip.getContents()
oTypes = oData.getTransferDataFlavors()
for e = 0 to ubound(oTypes)
if oTypes(e).MimeType = "text/plain;charset=utf-16" then
stext = oData.getTransferData( oTypes(e) )
stext = oConverter.convertToSimpleType( stext, 12 )
cliptext = stext
exit function
end if
next
end function
sub paste_lines_to_rows()
doc = thisComponent
sel = doc.getCurrentSelection()
sheet = sel.getSpreadsheet()
address = sel.getCellAddress()
c = address.Column : r = address.Row
liste = cliptext()
liste() = split( liste, chr(10))
endrow = ubound(liste())
tmp() = split( liste(0), " " , 2)
liste(0) = split( tmp(1), " ")
endcol = ubound(liste(0))
for i = 1 to endrow
if len(liste(i)) then
liste(i) = split( liste(i), " ", endcol +1 )
else
liste(i) = split( space( endcol ), " ")
end if
next i
range = sheet.getCellrangeByPosition( c, r, c + endcol, r + endrow )
range.setFormulaArray( liste())
end sub
Karo
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Zwischenablage
Hallo Karo,
vielen Dank für deine Bemühungen, es funktioniert bis auf die letzte Zeile, aber die
Daten werden eingefügt, obwohl folgende Fehlermeldung kommt.
Type: com.sun.star.uno.RuntimeException
Message: .
Eine Kleinigigkeit gibt es noch, wenn aufeinander folgende Leerzeichen
auftreten, dann müssen diese als ein Trenner behandelt werden,
da sonst die Spalten durcheinander kommen.
Bei meinem Beispieldatensatz s.o. wurden die doppelten Leerzeichen leider
"wegformatiert".
Gruß DAP
vielen Dank für deine Bemühungen, es funktioniert bis auf die letzte Zeile, aber die
Daten werden eingefügt, obwohl folgende Fehlermeldung kommt.
Type: com.sun.star.uno.RuntimeException
Message: .
Eine Kleinigigkeit gibt es noch, wenn aufeinander folgende Leerzeichen
auftreten, dann müssen diese als ein Trenner behandelt werden,
da sonst die Spalten durcheinander kommen.
Bei meinem Beispieldatensatz s.o. wurden die doppelten Leerzeichen leider
"wegformatiert".
Gruß DAP
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.