Automatische Verknüpfung von Werte zwischen Calc und Writer

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.
Grundproblem:
Ich habe einige Berechnungsmuster im Calc, hier sollen teile der Ergebnisse in ein fertiges Dokument im Writer übernommen werden.
Beispiel:
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.
Wer kann helfen?
Vielen Dank schon mal… und ach ja, bin ja neu… Hallo an alle!

Unerschiedlich… mal nur 60 Seiten, kann aber auch mal 180 werden.

1 Like

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.

1 Like

Habe den Link zum alten OO-Wiki gerade woanders gebraucht:
http://www.ooowiki.de/DDE.html

Ich fand das recht verständlich erklärt.
J.

Hallo…
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…

@Wanderer
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.

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?

Ganz egal in welcher Sprache, ohne Beispieldokumente und Daten werden wir tagelang aneinander vorbei reden.

Hallo Villeroy,
danke für deine Ausführungen.
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…

Hallo,

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

Verwende eine Kopie des Dokuments
Selektiere den Datebereich ohne die Spaltenköpfe
Menü:Suchen&Ersetzen…
Suchen: [:alpha:]
Ersetzen: X
Weitere Optionen
[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.

1 Like

Die Seite wurde 2023 abgeschaltet und ist nur noch über WebArchive verfügbar:
https://web.archive.org/web/20210507042224/http://www.ooowiki.de/DDE.html

https://web.archive.org/web/20210507042224/http://www.ooowiki.de/DDE.html

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
Typ: Tabellenkalkulation
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.

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.

– SETUP BASE –
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.
Speicher die Abfrage und das Datenbankdokument.

– SETUP WRITER –
Bearbeiten>Datenbank austauschen… und wähle die neue Abfrage als Quelle für dieses Dokument.

– REGELMÄSSIGE BENUTZUNG –
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.
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.