Zwischenablage in Tabellenzelle (Cursor) einfügen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

polarbear
Beiträge: 5
Registriert: So, 20.06.2010 13:11

Zwischenablage in Tabellenzelle (Cursor) einfügen

Beitrag von polarbear »

Hallo Gemeinde,

wie kann der aktuelle Inhalt der Zwischenablage in die Tabellenzelle, in der der Cursor gerade steht, eingefügt werden.
Im Moment verwende ich ein Makro, das Text in das Dokument einfügt. Das funktioniert aber nicht, wenn der Cursor in einer Tabellenzelle steht:

Code: Alles auswählen

Sub ImportClipboard
  Dim oClip, oClipContents, oTypes
  Dim oConverter, convertedString$
  Dim i%, iPlainLoc%
 
  iPlainLoc = -1
 
  oClip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
  oConverter = createUnoService("com.sun.star.script.Converter")
 
  oClipContents = oClip.getContents()
  oTypes = oClipContents.getTransferDataFlavors()
 
  Dim msg$, iLoc%, outS
  msg = ""
  iLoc = -1
  For i=LBound(oTypes) To UBound(oTypes)
    If oTypes(i).MimeType = "text/plain;charset=utf-16" Then
      iPlainLoc = i
      Exit For
    End If
     'msg = msg & "Mime type = " & x(ii).MimeType & " normal = " & x(ii).HumanPresentableName & Chr$(10)
  Next
  If (iPlainLoc >= 0) Then
    convertedString = oConverter.convertToSimpleType(oClipContents.getTransferData(oTypes(iPlainLoc)), com.sun.star.uno.TypeClass.STRING)

    myDoc=thisComponent
    myViewCursor=myDoc.GetCurrentController.ViewCursor
    myViewCursor.String = convertedString

  Else
  	 MsgBox "Nichts zum Einfügen vorhanden"
  End If
End Sub
Ich vermute es liegt an diesen Zeilen

Code: Alles auswählen

    convertedString = oConverter.convertToSimpleType(oClipContents.getTransferData(oTypes(iPlainLoc)), com.sun.star.uno.TypeClass.STRING)
    myDoc=thisComponent
    myViewCursor=myDoc.GetCurrentController.ViewCursor
    myViewCursor.String = convertedString
Wer kann helfen?

Dank und Gruß
polarbear



Moderation,4: ins zuständige Unterforum verschoben
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Zwischenablage in Tabellenzelle (Cursor) einfügen

Beitrag von komma4 »

polarbear hat geschrieben:wie kann der aktuelle Inhalt der Zwischenablage in die Tabellenzelle, in der der Cursor gerade steht, eingefügt werden.
Das müsste mit folgendem dispatcher Code gehen, oder?

Code: Alles auswählen

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten