🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
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: 2515
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:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten