🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Url von Hyperlinks ändern

Alles zur Programmierung im LibreOffice.
Antworten
toni007
Beiträge: 34
Registriert: Mi 31. Okt 2012, 12:31

Url von Hyperlinks ändern

Beitrag von toni007 » Fr 27. Nov 2020, 12:36

Hallo zusammen,

ich habe in einem Tabellenblatt eine Reihe von Hyperlinks zu Webseiten und Dokumenten.
Bisher benutze ich die Datei nur auf einem Ubuntu-System auf einem Laufwerk I, wo auch die Dokumente liegen:

Hier beginnt der Pfad mit 'file:///cifs/I/Unterordner/.../

Jetzt soll diese Datei auch auf einem Windowsystem laufen, mit gleicher Pfadstruktur.

Allerdings beginnt der Pfad hier mit 'file:///I:/Unterordner/.../

Ich habe versucht, die URL zu ändern, aber das funktioniert so nicht:

Code: Alles auswählen

' Wird bei 'Dokument öffnen' ausgeführt
Sub start
	If getGUIType() = 1 Then
		Call ErsetzeAlleHyperlink
	End If
End sub


Sub ErsetzeAlleHyperlink()

    Dim alterPfad As String
    Dim neuerPfad As String
    Dim myLink 'As Hyperlink
   
  
     oCalc = thisComponent
     oSheet = oCalc.sheets(0)
     oCellRange = osheet.getCellRangeByName("A1:Z100")
'auslesen der Eckpunkte  
     iErsteSpalte = oCellRange.rangeAddress.startColumn
     iErsteZeile = oCellRange.rangeAddress.startRow
     iLetzteSpalte = oCellRange.rangeAddress.EndColumn
     iLetzteZeile = oCellRange.rangeAddress.EndRow
  
     'Schleife über die Zeilen im Sheet
      For i = iErsteZeile to iLetzteZeile
       For m = iErsteSpalte to iLetzteSpalte
         oCell=osheet.getCellByPosition(m,i)
			Call FindHyperLinkInCell(oCell)
       next m
      next i   
End Sub

Sub FindHyperLinkInCell(oCell)
  Dim oText, oParEnum, oParElement, alterPfad, neuerPfad
  Dim oEnum, oElement

  oParEnum = oCell.getText().createEnumeration()

    alterPfad = "/cifs/i/"
    neuerPfad = "I:"

  Do While oParEnum.hasMoreElements ()
    oParElement = oParEnum.nextElement()
    oEnum = oParElement.createEnumeration()
    Do While oEnum.hasMoreElements ()
      oElement = oEnum.nextElement()
      If oElement.TextPortionType = "TextField" Then
        If oElement.TextField.supportsService("com.sun.star.text.TextField.URL") Then

          oElement.TextField.URL =Replace(oElement.TextField.URL, alterPfad, neuerPfad)

        End If
      End If
    Loop
  Loop
End Sub
Kann mir da jemand helfen?

Gruß Thomas

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Url von Hyperlinks ändern

Beitrag von F3K Total » Fr 27. Nov 2020, 17:11

Moin,
versuche es mal hiermit:

Code: Alles auswählen

Sub FindHyperLinkInCell(oCell)
     if oCell.Textfields.count = 1 then
         oTextfield = oCell.Textfields(0)
         if oTextfield.PropertySetInfo.hasPropertyByName("URL") Then
             alterPfad = "cifs/i"
             neuerPfad = "I:"
             sUrl = oTextfield.URL
             sNewUrl = Replace(sUrl, alterPfad, neuerPfad)
             oTextfield.URL = sNewUrl
          endif
    endif
End Sub
Windows 11: AOO, LO Linux Mint: AOO, LO

toni007
Beiträge: 34
Registriert: Mi 31. Okt 2012, 12:31

Re: Url von Hyperlinks ändern

Beitrag von toni007 » Fr 27. Nov 2020, 18:54

Danke, klappt prima!!!


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.



Antworten