Results 1 to 3 of 3

LibreOffice Zellen-Verknüpfungen zu xlsx

  1. #1 Reply With Quote
    Tieftöner  Lookbehind's Avatar
    Join Date
    Dec 2007
    Posts
    14,573
    Hallo zusammen,

    es ist wieder diese Zeit des Jahres ... "Nach hause fahren und Computer in der Verwandtschaft fixen" ... In diesem Jahr geht es darum Windows 7 los zu werden.

    Jetzt hab ich hier so einen Fall, wo Win 7 durch ein Linux-Mint ersetzt werden soll. Was auch in den allermeisten Punkten kein all zu großes Problem ist, weil die meisten Anwendungen unter Linux einfach genauso zur Verfügung stehen. Einzige Ausnahme: MS Office, mit dem Haupt-Augenmerk auf Excel. Nunja, die nötigen Funktionalitäten bietet LibreOffice prinzipiell auch. Aber natürlich will man vorher testen, ob das auch alles noch funktioniert. Größtenteils tut es das. Bis auf eins ...

    Da bisher ausschließlich MS Office benutzt wurde, sind die ganzen Tabellen (und derer sind VIELE!) natürlich alle im xlsx Format.
    Diese Tabellen sind mitunter miteinander Verknüpft. ... das Wort "Verknüpft" ist in dem Zusammenhang leider echt fatal, Die Funktion heißt offiziell so, aber leider findet man unter dem Begriff beim Googlen alles mögliche, nur nichts hilfreiches.

    Was meine ich mit Verknüpfung?
    In der Datei "foo.xlsx" sind ganz viele Werte in Tabellen eingetragen, und über diverse Formeln errechnen sich daraus wieder andere Werte in bestimmten Zellen. Sagen wir mal die Zellen A2 und B2 enthalten Werte, die dann in C2 summiert werden (simplifiziertes Beispiel).
    In der Datei "bar.xlsx" soll jetzt an einer Stelle der Wert aus dem Feld C2 in der Datei "foo.xlsx" stehen. ... das lässt sich über sogenannte Verknüpfungen machen und funktioniert auch.
    Jedes mal, wenn die Datei bar.xlsx geöffnet wird, fragt Excel einmal, ob die Verknüpfungswerte aktualisiert werden sollen, und holt dann entsprechend die dazugehörigen Werte aus den anderen Dateien. In diesem Beispiel also den Wert aus Zelle C2 in foo.xlsx.

    Wenn ich die Datei bar.xlsx jetzt mit LibreOffice Calc (dem Äquivalent zu Excel) öffne, dann funktioniert das auch zunächst. Er fragt ob er die Daten aktualisieren soll, holt sich die aktuellen Werte, rechnet damit in diversen Formeln und alles ist tutti. Wenn ich jetzt die Datei bar.xlsx aber speichere, und wieder öffne, dann ist anschließend der Pfad zu der Datei im Popo!

    Excel scheint dort relative Pfade ab zu legen, was gut ist, weil sich so der ganze Kram problemlos von einem zum anderen System übertragen lässt, und die Pfade dennoch noch passen. Allerdings zeigt Excel den absoluten Pfad an, wenn man auf die Zelle klickt. Auch LibreOffice Calc macht das so. Allerdings schreibt es scheinbar beim speichern den absoluten Pfad da rein. Schlimmer noch, beim erneuten öffnen, benutzt es das aber wieder wie einen relativen Pfad, und baut sich den absoluten Pfad wieder zusammen.

    Beispiel:
    Die Verknüpfung in unserer bar.xlsx zeigt nach wie vor auf unsere foo.xlsx. Wenn ich die bar.xlsx jetzt in LibreOffice-Calc öffne, wird in der Zelle der Absolute Pfad "='file:///home/user/spreadsheets/foo.xlsx'#$Tabelle1.C2" angezeigt. Wenn ich die Datei nun speichere und wieder öffne, steht plötzlich als Pfad "='file:///home/user/spreadsheets/home/user/spreadsheets/foo.xlsx'#$Tabelle1.C2" drin und Calc beschwert sich, dass es die Verknüpfung nicht findet. Wenn ich die Datei nochmal speichere und wieder öffne, steht "='file:///home/user/spreadsheets/home/user/spreadsheets/home/user/spreadsheets/foo.xlsx'#$Tabelle1.C2" drin. ...und so weiter.
    Jetzt könnte man auf die Idee kommen, dass sich das Problem löst, indem man dort einfach direkt einen relativen Pfad einträgt. ... Denkste! Er mag den relativen Pfad nicht, und findet die Verknüpfung nicht. In dem Fall erweitert er den Pfad aber leider auch nicht.

    Das Problem tritt nicht auf, wenn ich aus der bar.xlsx eine bar.ods mache. Das hat aber leider zur Konsequenz, dass die baz.xlsx jetzt den Inhalt der bar.xlsx nicht mehr findet und ich alle Verknüpfungen in der baz.xlsx anpassen muss. ... was für ein paar Tabellen OK wäre. Aber wir reden buchstäblich von ein paar Hundert xlsx-Dateien die jeweils mit zig Verknüpfungen untereinander verschachtelt sind. Den Arbeitsaufwand, das alles um zu stellen, will sich niemand machen.


    Leider finde ich keine konkreten Hinweise zu dem Problem. Lediglich einen einzigen Eintrag im LibreOffice Bug-Tracker, von vor 2 Jahren, der ein ähnliches Problem (nicht exakt das gleiche) beschreibt. Der Issue wurde aber kommentarlos geschlossen.
    Ansonsten krankt die Suche sehr stark daran, dass die Begrifflichkeiten nicht Eindeutig sind.

    Any Ideas?
    Lookbehind is offline

  2. #2 Reply With Quote
    Metasyntaktische Variable  foobar's Avatar
    Join Date
    Sep 2004
    Location
    Direkt hinter dir! Buh!
    Posts
    21,318
    Letztlich sind sowohl XLSX als auch ODS doch nur ZIP-Archive mit XML-Dateien, Metainformationen und eingebetteten Inhalten. Mal probiert, ob du die einfach entpacken, via »sed« das „xlsx” zu „ods” im XML ändern und anschließend alles wieder zusammenpacken und als ODS-Datei öffnen kannst?
    foobar is offline

  3. #3 Reply With Quote
    Tieftöner  Lookbehind's Avatar
    Join Date
    Dec 2007
    Posts
    14,573
    Hm, ja, mit dem kleinen Satz an Test-Dateien funktioniert das. Allerdings muss ich mal schauen, wie ich das automatisieren kann, und ob das mit wirklichen, schon seit längerem produktiv benutzen Dateien, auch noch funktioniert. Ich weiß, dass sowohl LibreOffice, aber insbesondere MS-Office da auch ganz viel Meta-Daten mit rein schreibt, bei denen man schnell verkacken kann, wenn man nicht aufpasst.

    Zudem müsste ich mir nen Abhängigkeitsbaum basteln, damit es beim konvertieren der Dateien nicht zu Problemen kommt.
    Zeit für ein bisschen Shell-Kung-Fu.
    Lookbehind is offline

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •