text: Automatische Verknüpfung von Werte zwischen Calc und Writer - Deutsch - Ask LibreOffice
  Automatische Verknüpfung von Werte zwischen Calc und Writer
  AndreWerner December 14, 2021, 8:20pm #1
  Hallo Zusammen. Ich bin recht neu mit Libre Office unterwegs. Zuvor -na logisch- Office anwender.
  Ich habe einige Dateien noch aus Office-Zeiten die ich nun gern in Libre nutzen/ anpassen möchte.
  Ich habe einige Berechnungsmuster im Calc, hier sollen teile der Ergebnisse in ein fertiges Dokument im Writer übernommen werden.
  Im Calc kommt in einer Berechnung [Brandlast hoch mit 100+, unter gegebenen Bedingungen] heraus. Ergebniss aus verschiedenen Rechenoperationen in Textkette gepackt.
  Nun soll dieser Passus [] im Writer in einem bestehenden Dokument übernommen werden. Die Positionen sind immer Fest im Text…
  Also Text:"…bla…bla…bla bei der Begehung ergab sich eine [Brandlast hoch mit 100+, unter gegebenen Bedingungen]…bla…bla… usw.
  Ich benötige also eine feste Verknüpfung von Werten aus Calc in Writer. Bei MS Office ging es einwandfrei, leider habe ich keine Lösung bei LibreOffice gefunden… oder Tomaten auf den Augen.
  Vielen Dank schon mal… und ach ja, bin ja neu… Hallo an alle!
  AndreWerner December 14, 2021, 8:20pm #3
  Unerschiedlich… mal nur 60 Seiten, kann aber auch mal 180 werden.
  Villeroy December 14, 2021, 8:20pm #4
  Das DDE-Feld ist hier die Lösung für einzelne Werte.
  Datenbankfelder sind eine Möglichkeit wenn es um Datensätze geht, nicht nur bei Serienbriefen. Bei Deinen Berichten wird eher letzteres zutreffen. Und in Bezug auf Datenbankfelder ist Calc aus verschiedenen Gründen die schlechteste Wahl.
  P.S. Hätte ich nur einen einzigen Datensatz, würde ich in wenigen Minuten das Grundgerüst für eine komfortable Lösung erstellen, ganz ohne Macros.
  Wanderer December 14, 2021, 8:20pm #5
  Habe den Link zum alten OO-Wiki gerade woanders gebraucht:
  Ich fand das recht verständlich erklärt.
  AndreWerner December 14, 2021, 8:20pm #6
  Ja, soweit war ich auch mit dem DDE. Leider ist das doch recht "störisch" und für ca. 150 verknüpfungen recht arbeitsintensiv.
  Ich hatte gehofft, dass es wie bei MS einfach per C&P mit einer verknüpfung kopiert werden könnte. Oder es vielleicht ein PlugIn gibt…
  Villeroy December 14, 2021, 8:20pm #7
  Ja schon, aber wenn Du irgendwelche "Fälle" bearbeitest willst Du mit wenigen Klicks einen ganzen zusammengehörigen Datensatz in Deinen Text einsetzen, genau wie bei einem Serienbrief Anrede, Vorname, Nachname, Straße, PLZ und mögicherweise viele weitere Werte, die alle zu demselben Empfänger gehören. Eventuell könnte man das mit DDE-Feldern hinbekommen und müsste dann von Fall zu Fall die Quelldatei ändern, um den Datensatz zu wechseln. Wollte ich grade mal ausprobieren, aber mein Writer (Linux) stürzt ab wenn ich mehrer DDE Felder in ein Dokument einfüge. Soviel dazu.
  @AndreWerner
  Ich verstehe jetzt nicht, wie man mit Excel/Word 150 Verknüpfungen ganz easy-peasy herstellen soll. Gibt es ein LibreOffice PlugIn? Ja, gibt es. Es heißt "Base" und ist die Datenbankkomponente von LibreOffice. Es ist eben ein Entwicklertool und die Bedienung bedingt Anwenderfreundlich weil es ein gewisses konzeptionelles Verständnis voraussetzt. Potentiell ist Base die nützlichste Komponente in dieser ganzen Office Suite. Wie gesagt: Ohne konkrete Dummy-Daten aus Deiner Tabellenkalkulation habe ich nicht die geringste Ahnung, was genau vorbereitet werden müsste um Deine 150 Verknüpfungen pro Dokument mit wenigen Klicks in ein Dokument zu laden. Aber ich bin sicher, dass es geht.
  joshua4 December 14, 2021, 8:20pm #8
  Leider ist mein Deutsch nicht so gut, aber wenn ich richtig verstehe, dann ware es vielleicht moglich irgendwie eine Mischung von Document Sections und MailMerge zu nutzen? Klar ware das nicht ideal, aber konnte sein, dass es fur einige Falle genugt?
  Villeroy December 14, 2021, 8:20pm #9
  Ganz egal in welcher Sprache, ohne Beispieldokumente und Daten werden wir tagelang aneinander vorbei reden.
  AndreWerner December 14, 2021, 8:20pm #10
  Hier ein kleine (von 15 anderen Sheets) Beispiel. Meine derzeit Excel berechnet nach einer von mir entwickelten Matrix Risikobewertungen und setzt diese sowohl als Graph aber auch in Klartext um. Für ein Sicherheitskonzept kommen meist ca. 50 bis 100 Bewertungen zusammen.
  Die Bewertungen erfolgen immer und sind auch immer an einem festen Platz im Konzept. Weiter ist die RiskBewertung mit unterschiedlichsten Modulen der anderen 14 Sheets verbunden, welche automatisch Einfluss auf die Bewertungen haben.
  Nun müssen eben diese Klar-Text Bausteine im Dokument veranktert werden.
  Zusätzlich ist noch das Problem, dass ich die Word und Excel als Dokumenten-Vorlage habe, da ich für jedes Projekt ja eine eigene Berechnung und Konzept erstelle, ob das mit Libre funktioniert, weiß ich noch gar nicht…
  Derzeit mach ich einfach die Verknüpgung Excel Stgr+C und in Word Alt+Stgr+V und auswahl Verknüpfung ohne Format… funktioniert super…
  Ja, das mit Base habe ich mir auch schon überlegt, aber leider finde ich da keinen Anfang für mich, zu wenig Erfahrungen…
  grafik1877×901 121 KB
  AndreWerner December 14, 2021, 8:20pm #12
  das kann ich leider nicht machen…
  Die in der Datei hinterlegten berechnungen und der Aufbau ist eine sehr große Grundlage meines Geschäfts… wenn das in die "falschen" Hände geraten würde - und ich unterstelle hier niemand in diesem Forum böse Absicht (WICHTIG!!!) - würde ich meinen Vorsprung zu meinen Konkurenten einbüßen.
  Habt bitte verständnis dafür…
  ggf. kann ich eine Fake-Datei erstellen ohne die relevanten Berechnungen und den hinterlegten Daten
  Villeroy December 14, 2021, 8:20pm #15
  Verwende eine Kopie des Dokuments
  Selektiere den Datebereich ohne die Spaltenköpfe
  Menü:Suchen&Ersetzen…
  [X] Aktuelle Auswahl
  [X] Reguläre Ausdrücke
  [Alle Ersetzen]
  Nun sind alle Strings ausgeixt, liefern aber immer noch hinweise auf die Art und Länge der Werte. Die Zahlen und Datumswerte sind ohne Strings kontextlos und damit anonym.
  Villeroy December 14, 2021, 8:20pm #16
  Und weil Excel Addicts unter gar keinen Umständen jemals eine Datenbank nutzen wollen, habe ich eben mein Kurztutorial aus den Englischen Foren übertragen. Ganz ohne Datenbankdokument geht es nicht, aber das ist hier nur eine leere Hülle ohne Daten und mit begrenzten Möglichkeiten.
  Dies die einfach zu erstellende Lösung, welche weiterhin die Tabellenkalkulation als Datenbank missbraucht. Sie interpretiert die Liste in Deinem Screenshot als Datenbanktabelle und stellt diese Tabelle beliebiegen Dokumenten zur Verfügung. Das heißt nicht, dass die Daten irgendwo anders gespeichert sind als in der Calc-Tabelle (oder Excel-Tabelle, egal). Das zugehörige Datenbankdokument ist sozusagen leer. Nachteil: Du kannst die Daten nur in Calc (oder auch Excel) bearbeiten und musst die komplette Office Suite neu starten bis die Änderungen in der verbundenen Datenbank sichtbar werden. Einfach speichern und einen Update-Knopf drücken reicht leider nicht.
  – SETUP Calc –
  Tip #1: Falls das relevante Tabellenblatt außer der Liste mit den 150 Spalten weitere Daten enthält (Nebenrechnungen, separate Notizen, andere Listen), wähle die relevante Liste einschließlich der Spaltenbeschriftungen aus, dann Daten>Bereich festlegen… und isoliere die Liste mit einem eigenen Namen.
  – SETUP Base –
  Datei>Neu>Datenbank…
  Verbinde mit existierender Datenbank
  Gib Dein Calc-Dokument an (Excel geht auch)
  [X] Registriere die Datenbank (für Datennutzung außerhalb von Base)
  Speicher die Datenbank
  Nun sollte der benutzte Bereich eines jeden Arbeitsblattes als Pseudo-Datenbanktabelle erscheinen. Außerdem sind Datenbankbereiche (Tip #1) als separate Tabellen aufgeführt.
  Tip #2: Extras>Tabellenfilter… erlaubt das Ausblenden von Tabellen. Nicht jeder Zellbereich eines Kalkulationsprogrammes ist eine datenbanktaugliche Liste.
  Ich gehe jetzt mal davon aus, dass Deine 150 Spalten eine eindeutige ID, Vorgangsnummer, Aktenzeichen enthält. Sagen wir mal einfach, die Spalte ist mit "ID" betitelt und die Tabelle heißt "Tabelle1".
  Menu:EInfügen > Abfrage (SQL-Ansicht)
  SELECT * FROM "Tabelle1" WHERE "ID" = :Bitte_Vorgangsnummer_eingeben
  [mit den echten Namen statt "Tablelle1" und "ID", das * wählt einfach alle Spalten aus]
  Taste F5 führt diese Abfrage aus und zeigt einen kleinen Dialog "Bitte_Vorgangsnummer_eingeben", wo Du die ID eingibst. Das Resultat solte genau ein Datensatz sein wenn Deine IDs eindeutig sind.
  Speicher die Abfrage und das Datenbankdokument.
  Schließe das Datenbankdokument. Du brauchst es jetzt nicht mehr.
  – SETUP Writer –
  Öffne Dein Writer-Dokument.
  Ansicht>Datenquellen [Strg+Umsch+F4]
  Auf der linken Seite: Doppelklick auf Datenbankname, auf Abfragen, Klick auf Abfrage. Gib eine beliebige ID ein.
  Wenn der Datensatz angezeigt wird, ziehe graue Spaltenköpfe aus dem Datenquellenfenster an die passenden Stellen im Textdokument. Bei 150 Spalten ist das etwas Fleißarbeit. Du kannst auch den Dialog zum Einfügen von Feldern verwenden [Strg+F2, Tab:Datenbank] aber eigentlich ist die Drag&Drop-Methode die angenehmere.
  – REGELMÄSSIGE BENUTZUNG –
  Jedesmal wenn Du das Textdokument ausdruckst, wird erst ein Dialog zur Bestätigung eines Seriendrucks aufploppen, dann der Dialog "Bitte_Vorgangsnummer_eingeben". Der Serienbrief besteht auf diese Weise nur noch aus einem Exemplar weil wir ja jedesmal eine eindeutige ID eingeben.
  Danach kannst Du das Dokument an einen Drucker senden oder als Datei ausgeben (PDF, odt, docx, whatever)
  Und immer dran denken, dass eine Änderung in der Tabellenkalkulation einen Neustart von LibreOffice benötigt. Mit einer echten Datenbank würde dieses und ein paar andere Hindernisse entfallen.
  Villeroy December 14, 2021, 8:20pm #17
  Und noch eine Variante, die mit der Tabellenkalkulation als Pseudo-Datenbank funktionierem könnte falls Deine Tabelle so etwas wie einen Zeitvektor entählt, eine Spalte mit Datumswerten oder eine fortlaufende Nummerierung.
  Nimm das oben beschriebene Setup, öffne das Datenbankdokument und Einfügen>Abfrage(SQL-Ansicht)…
  SELECT * FROM "Tabelle1" ORDER BY "Datum" DESC
  Das liefert einfach die komplette Tabelle absteigend sortiert nach der Spalte, die mit "Datum" beschriftet ist.
  Bearbeiten>Datenbank austauschen… und wähle die neue Abfrage als Quelle für dieses Dokument.
  Jedesmal wenn Du das Textdokument ausdruckst, wird erst ein Dialog zur Bestätigung eines Seriendrucks aufploppen. Im nachfolgenden Dialog siehst Du die neuesten Fälle oben stehen.
  Klicke auf den grauen Zeilenkopf links neben dem gewünschten Datensatz. Mehrfachselektion ist ebenfalls möglich.