Spreadsheet Workbench/de: Difference between revisions

From FreeCAD Documentation
No edit summary
(Updating to match new version of source page)
 
(125 intermediate revisions by 6 users not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav/de
{{Docnav/de
|[[Sketcher Workbench/de|Skizzierer Arbeitsbereich]]
|[[Sketcher_Workbench/de|Sketcher Arbeitsbereich]]
|[[Start Workbench/de|Start Arbeitsbereich]]
|[[Start_Workbench/de|Start Arbeitsbereich]]
|IconL=Workbench_Sketcher.svg
|IconL=Workbench_Sketcher.svg
|IconR=Workbench_Start.svg
|IconR=Workbench_Start.svg
}}
}}


[[Image:Workbench_PartDesign.svg|thumb|128px|Tabellenkalkulation Arbeitsbereichssymbol]]
[[Image:Workbench_Spreadsheet.svg|thumb|128px|Tabellenkalkulation Arbeitsbereichssymbol]]


<span id="Introduction"></span>
== Einführung ==
== Einführung ==


Der [[Image:Workbench_Spreadsheet.svg|24px]] [[Spreadsheet Workbench/de|Arbeitsbereich Tabellenkalkulation]] ermöglicht die Erstellung und Bearbeitung von Tabellen, Daten aus der Tabellenkalkulation als Parameter in einem Modell zu verwenden, die Tabellenkalkulation mit aus einem Modell abgerufenen Daten zu füllen, Berechnungen durchzuführen und die Daten in andere Tabellenkalkulationsprogramme wie LibreOffice oder Microsoft Excel zu exportieren.
Der [[Image:Workbench_Spreadsheet.svg|24px]] [[Spreadsheet_Workbench/de|Arbeitsbereich Tabellenkalkulation]] ermöglicht die Erstellung und Bearbeitung von Tabellen, Daten aus der Tabellenkalkulation als Parameter in einem Modell zu verwenden, die Tabellenkalkulation mit aus einem Modell abgerufenen Daten zu füllen, Berechnungen durchzuführen und die Daten in andere Tabellenkalkulationsprogramme wie LibreOffice oder Microsoft Excel zu exportieren.


{{TOCright}}
{{TOCright}}
Line 18: Line 20:
{{Caption|Eine Tabellenblatt mit bestimmten Zellen, die mit Text und Mengen gefüllt sind}}
{{Caption|Eine Tabellenblatt mit bestimmten Zellen, die mit Text und Mengen gefüllt sind}}


<span id="Tools"></span>
== Werkzeuge ==
== Werkzeuge ==


* [[File:Spreadsheet_CreateSheet.svg|24px]] [[Spreadsheet_CreateSheet/de|Blatt erstellen]]: Erstelle ein neues Arbeitsblatt.
* [[File:Spreadsheet_CreateSheet.svg|24px]] [[Spreadsheet_CreateSheet/de|Blatt erstellen]]: Erstelle ein neues Tabellenblatt.


* [[File:Spreadsheet_Import.svg|24px]] [[Spreadsheet_Import/de|Import]]: eine Komma-getrennte Werte Datei (engl.: comma-separated values) (CSV) in ein Tabellenblatt importieren.
* [[File:Spreadsheet_Import.svg|24px]] [[Spreadsheet_Import/de|Importieren]]: eine CSV Datei in ein Tabellenblatt importieren.
* [[File:Spreadsheet_Export.svg|24px]] [[Spreadsheet_Export/de|Export]]: eine Komma-getrennte Werte Datei (engl.: comma-separated values) (CSV) aus einem Tabellenblatt exportieren.


* [[File:Spreadsheet_MergeCells.svg|24px]] [[Spreadsheet_MergeCells/de|Zellen zusammenführen]]: ausgewählte Zellen zusammenführen.
* [[File:Spreadsheet_Export.svg|24px]] [[Spreadsheet_Export/de|Exportieren]]: eine CSV Datei aus einem Tabellenblatt exportieren.
* [[File:Spreadsheet_SplitCell.svg|24px]] [[Spreadsheet_SplitCell/de|Zelle teilen]]: zuvor zusammengeführte Zellen teilen.


* [[File:Spreadsheet_AlignLeft.svg|24px]] [[Spreadsheet_AlignLeft/de|Linksbündig ausrichten]]: den Inhalt der gewählten Zelle auf links ausrichten.
* [[File:Spreadsheet_MergeCells.svg|24px]] [[Spreadsheet_MergeCells/de|Zellen zusammenführen]]: Markierte Zellen zusammenführen.
* [[File:Spreadsheet_AlignCenter.svg|24px]] [[Spreadsheet_AlignCenter/de|Mittig ausrichten]]: den Inhalt der gewählten Zelle auf mittig horizontal ausrichten.
* [[File:Spreadsheet_AlignRight.svg|24px]] [[Spreadsheet_AlignRight/de|Rechtsbündig ausrichten]]: den Inhalt der gewählten Zelle auf rechts ausrichten.
* [[File:Spreadsheet_AlignTop.svg|24px]] [[Spreadsheet_AlignTop/de|Nach oben ausrichten]]: den Inhalt der gewählten Zelle oben ausrichten.
* [[File:Spreadsheet_AlignVCenter.svg|24px]] [[Spreadsheet_AlignVCenter/de|Vertikal ausrichten center]]: den Inhalt der gewählten Zelle mittig vertikal ausrichten.
* [[File:Spreadsheet_AlignBottom.svg|24px]] [[Spreadsheet_AlignBottom/de|Nach unten ausrichten]]: den Inhalt der gewählten Zelle unten ausrichten.


* [[File:Spreadsheet_StyleBold.svg|24px]] [[Spreadsheet_StyleBold/de|Stil Fett]]: den Inhalt der gewählten Zelle auf fett stellen.
* [[File:Spreadsheet_SplitCell.svg|24px]] [[Spreadsheet_SplitCell/de|Zelle teilen]]: teilt zuvor zusammengeführte Zellen.
* [[File:Spreadsheet_StyleItalic.svg|24px]] [[Spreadsheet_StyleItalic/de|Stil Kursiv]]: den Inhalt der gewählten Zelle auf kursiv stellen.
* [[File:Spreadsheet_StyleUnderline.svg|24px]] [[Spreadsheet_StyleUnderline/de|Stil Unterstrichen]]: den Inhalt der gewählten Zelle auf unterstrichen stellen.


* [[File:Spreadsheet_SetAlias.svg|24px]] [[Spreadsheet_SetAlias/de|Setze Alias]]: die ausgewählte Zelle mit einem Alias benennen.
* [[File:Spreadsheet_AlignLeft.svg|24px]] [[Spreadsheet_AlignLeft/de|Links ausrichten]]: Richtet den Inhalt der ausgewählten Zellen links aus.


* [[File:Spreadsheet_AlignCenter.svg|24px]] [[Spreadsheet_AlignCenter/de|Zentriert ausrichten]]: Richtet den Inhalt der ausgewählten Zellen horizontal zur Mitte aus.
* {{Button|Schwarz}} und {{Button|Weiß}} bestimmen die Vorder- und den Hintergrundfarbe der gewählten Zellen.


* [[File:Spreadsheet_AlignRight.svg|24px]] [[Spreadsheet_AlignRight/de|Rechts ausrichten]]: Richtet den Inhalt der markierten Zellen nach rechts aus.

* [[File:Spreadsheet_AlignTop.svg|24px]] [[Spreadsheet_AlignTop/de|Oben ausrichten]]: Richtet den Inhalt der markierten Zellen nach oberen aus.

* [[File:Spreadsheet_AlignVCenter.svg|24px]] [[Spreadsheet_AlignVCenter/de|Vertikale Mittig ausrichten]]: Richtet die Inhalte der ausgewählten Zellen vertikal zur Mitte aus.

* [[File:Spreadsheet_AlignBottom.svg|24px]] [[Spreadsheet_AlignBottom/de|Unten ausrichten]]: Richtet den Inhalt der markierten Zellen nach unten aus.

* [[File:Spreadsheet_StyleBold.svg|24px]] [[Spreadsheet_StyleBold/de|Stil fett]]: Der Inhalt der ausgewählten Zellen wird fett dargestellt.

* [[File:Spreadsheet_StyleItalic.svg|24px]] [[Spreadsheet_StyleItalic/de|Stil kursiv]]: setzt den Inhalt der ausgewählten Zellen kursiv.

* [[File:Spreadsheet_StyleUnderline.svg|24px]] [[Spreadsheet_StyleUnderline/de|Stil Unterstreichen]]: Der Inhalt der ausgewählten Zellen wird unterstrichen.

* [[File:Spreadsheet_SetAlias.svg|24px]] [[Spreadsheet_SetAlias/de|Setze Alias]]: legen den Alias für eine ausgewählte Zelle fest.

* {{Button|Schwarz}} und {{Button|Weiß}} legen die Vorder- und Hintergrundfarben der ausgewählten Zellen fest.

<span id="Preferences"></span>
== Einstellungen ==

* [[Image:Preferences-spreadsheet.svg|32px]] [[Spreadsheet_Preferences/de|Einstellungen]]: die Einstellungen für den Arbeitsbereich Tabellenkalkulation. {{Version/de|0.20}}

== Removing cells can be dangerous ==

Note that deleting or removing cells with data can break the spreadsheet and your model if it relies on the spreadheet. You are not prewarned if this happens.

<span id="Insert_and_remove_rows_and_columns"></span>
== Einfügen und Entfernen von Zeilen und Spalten ==

Rows and columns can be inserted or removed by right-clicking a row or column header and selecting the appropriate option from the contex menu. It is possible to select multiple rows or columns first. Either by holding down the {{KEY|Ctrl}} key while selecting the headers, or by holding down the left mouse button and dragging.

== Edit cells ==

The content of a cell can be edited by selecting the cell and entering a value in the {{MenuCommand|Content}} inputbox at the top of the window. To edit a cell in-place, select it and press {{KEY|F2}}, or double-click it.

== Delete cells ==

To delete one or more cells select them and press {{KEY|Del}}. This will delete their contents, their properties and their aliases. To only delete the content of a cell it should be edited instead.

<span id="Cut_and_copy-paste_cells"></span>
== Zellen ausschneiden und einfügen ==

Cut and copy-paste operations can be used on spreadsheets cells. You can use the normal shortcuts for these operations: {{KEY|Ctrl}}+{{KEY|X}}, {{KEY|Ctrl}}+{{KEY|C}} and {{KEY|Ctrl}}+{{KEY|V}} respectively. To select multiple cells hold down the {{KEY|Ctrl}} key while selecting, or hold down the left mouse button and drag to select a rectangular cell range.

The cut and copy operations store the contents, properties and aliases of the cells on the Clipboard. The paste operation writes the data in such a way that the content of the top left cell of the stored data is dropped in the active cell. Other stored content is placed relative to that cell. Formulas are updated accordingly. Aliases are only pasted if they are unique.

<span id="Cell_properties"></span>
== Zelleigenschaften ==

Die Eigenschaften einer Tabellenzelle können mit einem Rechtsklick auf die Zelle und Auswahl von {{MenuCommand|Eigenschaften...}} im Kontextmenü geändert werden. Folgender Dialog wird geöffnet:

[[File:SpreadsheetCellPropDialog.png]]

Wie in den Reitern angezeigt können die folgenden Eigenschaften geändert werden:

* Farbe: Text- und Hintergrundfarbe
* Ausrichtung: horizontale und vertikale Textausrichtung
* Stil: Textstil: fett, kursiv, unterstrichen
* Einheiten: Anzeigeeinheiten für diese Zelle. Den Abschnitt [[Spreadsheet_Workbench/de#Einheiten|Einheiten]] unten beachten.
* Alias: Einen [[Spreadsheet_SetAlias|Alias]] für diese Zelle festlegen. Dieser Alias kann in Zellformeln und auch in allgemeinen [[Expressions/de|Ausdrücken]] verwendet werden; siehe Abschnitt [[#Tabellendaten in Ausdrücken|Tabellendaten in Ausdrücken]] für weitere Informationen.

<span id="Cell_expressions"></span>
== Zellausdrücke ==
== Zellausdrücke ==


Eine Tabellenzelle kann beliebigen Text oder einen Ausdruck enthalten.
Eine Tabellenzelle kann eine Zahl, einen Text oder einen Ausdruck enthalten. Ausdrücke müssen mit einem Gleichheitszeichen '=' beginnen.
Technisch gesehen müssen Ausdrücke mit einem Gleichheitszeichen '=' beginnen.
Die Tabellenkalkulation versucht jedoch, intelligent zu sein.
Wenn etwas eingegeben wird, das wie ein Ausdruck ohne das führende "="-Zeichen aussieht, wird automatisch das Zeichen hinzugefügt.


Zellausdrücke können Zahlen, Funktionen, Verweise auf andere Zellen und Verweise auf Eigenschaften des Modells enthalten
Zellausdrücke können Zahlen, Funktionen, Verweise auf andere Zellen und Verweise auf Eigenschaften des Modells enthalten
(Siehe aber [[#Current_Limitations/de|Aktuelle Begrenzungen]] unten).
(Siehe aber [[#Aktuelle_Einschränkungen|Aktuelle Einschränkungen]] weiter unten).
Zellen werden durch ihre Spalte (GROSSBUCHSTABEN) und Zeile (Zahl) referenziert.
Eine Zelle kann über ihre Adresse (GROSSBUCHSTABEN für die Spalte + Zeilennummer, z.B. B4) referenziert werden oder über ihren [[Spreadsheet_SetAlias/de|Alias]].
Eine Zelle kann auch durch ihren [[#alias_name/de|Aliasnamen]] (siehe unten) referenziert werden.
Beispiel: B4 + A6


'''Anmerkung:''' Zellausdrücke werden von FreeCAD als Programmiercode behandelt. Wird also der Inhalt einer Zelle bearbeiten, kann es sein, dass der sichtbare Inhalt nicht den Anzeigeeinstellungen folgt:
'''Note:''' Cell expressions are treated by FreeCAD as programming code. Therefore, when you edit a cell the content you see that it is not following your display settings:
* Das Dezimaltrennzeichen ist immer ein Punkt, aber für die Eingabe von Werten können auch Kommas verwendet werden.
* the decimal separator is always a dot
* the number of displayed decimals can differ from your [[Preferences_Editor#Units|preferences settings]]
* Die Anzahl der angezeigten Dezimalstellen kann von denen in den [[Preferences_Editor/de#Einheiten|Voreinstellungen]] abweichen.


Referenzen zu Objekten im Modell werden unter [[#References_to_CAD-Data/de|Verweise auf CAD-Daten]] unten erklärt.
Referenzen zu Objekten im Modell werden unter [[#References_to_CAD-data/de|Referenzen auf CAD-Daten]] unten erklärt.
Die Verwendung von Tabellenkalkulationszellenwerten zur Definition von Modelleigenschaften wird unter [[#Spreadsheet_Data_in_Expressions/de|Tabellenkalkulationsdaten in Ausdrücken]] weiter unten erläutert.
Die Verwendung von Tabellenkalkulationszellenwerten zur Definition von Modelleigenschaften wird unter [[#Spreadsheet_data_in_Expressions/de|Tabellenkalkulationsdaten in Ausdrücken]] weiter unten erläutert.
Weitere Besonderheiten zur Bildung von Ausdrücken findest du unter [[Expressions/de|Ausdrücke]].
Weitere Besonderheiten zur Bildung von Ausdrücken findest du unter [[Expressions/de|Ausdrücke]].


<span id="Interaction_between_spreadsheets_and_the_CAD_model"></span>
== Unterstützte Funktionen ==

Trigonometrische Standardfunktionen und andere gebräuchliche mathematische Funktionen sowie statistische Aggregationsfunktionen werden unterstützt (siehe [[Expressions/de|Ausdrücke]]).

== Wechselwirkung zwischen Kalkulationstabellen und dem CAD Modell ==
== Wechselwirkung zwischen Kalkulationstabellen und dem CAD Modell ==


Line 80: Line 129:
wird die Änderung automatisch auf alle Referenzen in Kalkulationstabellenausdrücken mit dem geänderten Namen übertragen.
wird die Änderung automatisch auf alle Referenzen in Kalkulationstabellenausdrücken mit dem geänderten Namen übertragen.


In einem Dokument kann mehr als eine Kalkulationstabelle verwendet werden;
In einem Dokument kann mehr als eine Kalkulationstabelle verwendet werden. Eine Kalkulationstabelle kann entweder über ihren Namen oder ihre Beschriftung identifiziert werden.
Kalkulationstabellen können einen vom Benutzer zugewiesenen Namen erhalten (umbenennen) wie jedes andere Objekt.


FreeCAD vergibt automatisch einen eindeutigen Namen für eine Kalkulationstabelle, wenn sie erstellt wird. Diese Namen folgen dem Muster {{incode|Spreadsheet}}, {{incode|Spreadsheet001}}, {{incode|Spreadsheet002}} und so weiter. Der Name kann nicht geändert werden, und er ist in den Eigenschaften des Arbeitsblatts nicht sichtbar. Er kann verwendet werden, um in einem [[Expressions/de|Ausdruck]] auf das Tabellenblatt zu verweisen (siehe [[#Tabellendaten_in_Ausdrücken|Tabellendaten in Ausdrücken]] unten).
FreeCAD prüft zyklische Abhängigkeiten. Siehe [[Spreadsheet_Workbench/de#Aktuelle Einschränkungen|Aktuelle Begrenzungen]].


Die Benennung (Label) einer Kalkulationstabelle wird bei der Erstellung automatisch auf den Namen der Kalkulationstabelle gesetzt. Im Gegensatz zum Namen kann die Benennung geändert werden, z. B. in der Eigenschafteneditor oder über die Kontextmenüaktion Umbenennen. In der Standard-Voreinstellung akzeptiert FreeCAD keine doppelten Benennungen, aber es gibt eine [[Preferences_Editor/de#Dokument|Voreinstellung]] um dieses zu überschreiben. Kalkulationstabellen mit doppelten Benennungen in demselben Dokument können nicht durch ihre Benennung referenziert werden.
=== Zelleigenschaften ===


FreeCAD prüft auf zyklische Abhängigkeiten. Siehe [[Spreadsheet_Workbench/de#Aktuelle Begrenzungen|Aktuelle Begrenzungen]].
Die Eigenschaften der Zellen der Kalkulationstabelle können mit einem Rechtsklick auf einer Zelle geändert werden. Der folgende Dialog klappt auf:

[[File:SpreadsheetCellPropDialog.png]]

Wie in den Reitern angezeigt können die folgenden Eigenschaften geändert werden:

* Farbe: Text- und Hintergrundfarbe
* Ausrichtung: horizontale und vertikale Textausrichtung
* Stil: Textstil: fett, kursiv, unterstrichen
* Einheiten: <span id="units_tab"></span> Anzeigeeinheiten für diese Zelle. Den Abschnitt [[Spreadsheet_Workbench/de#Einheiten|Einheiten]] unten beachten.
* Alias: <span id="alias_name"></span> Einen Alias Namen für diese Zelle festlegen. Der Alias-Name kann in den Zellformeln und auch in allgemeinen FreeCAD Ausdrücken verwendet werden.
Während mancher die Zeilen- und Spaltennummer einer Zelle in den Ausdrücken verwendet, um sich auf diese zu beziehen, stellt die Verwendung von Aliasnamen die beste Methode dazu dar. Wenn z.B. der Wert in der Zelle B1 die Länge des Objektes enthält, erlaubt die Verwendung des Aliasnamens ''Objektlaenge'' den Bezug auf die Zelle im Ausdruck ''Spreadsheet.Objektlaenge'', anstatt des Ausdruckes ''Spreadsheet.B1'' {{Version/de|0.16}}. Allerdings ist beides möglich, jedoch weiß man mit dem Alias, welcher Wert sich darin befindet.


<span id="References_to_CAD-data"></span>
=== Referenzen auf CAD-Daten ===
=== Referenzen auf CAD-Daten ===


Wie oben angegeben, kann man in Kalkulationstabellenausdrücken auf Daten aus dem CAD Modell verweisen.
Wie oben angegeben, kann man in Kalkulationstabellenausdrücken auf Daten aus dem CAD Modell verweisen.

Berechnete Ausdrücke in Kalkulationstabellenzellen beginnen mit einem Gleichheitszeichen ('=').
DerKalkulationstabelleneingabemechanismus versucht jedoch, intelligent zu sein.
Ein Ausdruck kann ohne das führende '=' eingegeben werden;
eingegeben werden, wenn die eingegebene Zeichenfolge ein gültiger Ausdruck ist,
ein '=' wird automatisch hinzugefügt, wenn das abschließende {{KEY|Enter}} eingegeben wird.
Wenn die eingegebene Zeichenkette kein gültiger Ausdruck ist
(oft das Ergebnis der Eingabe von etwas mit dem falschen Fall, z.B. "MyCube.length" statt "MyCube.Length"),
wird kein führendes '=' hinzugefügt und es wird als einfache Zeichenkette behandelt.

'''Anmerkung:''' Das obige Verhalten (automatisches Einfügen von '=') hat einige unangenehme Auswirkungen:
* Wenn du eine Spalte mit Namen, die dem [[#alias_name|alias-names]] in einer angrenzenden Spalte mit Werten entspricht, beibehalten wollen, musst du den Namen in der Bezeichnungsspalte ''vorher'' eingeben und der Zelle in der Wertspalte ihren Alias Namen geben. Anderenfalls nimmt das Kalkulationstabellenblatt bei der Eingabe des Alias Namens in der Beschriftungsspalte an, dass es sich um einen Ausdruck handelt und ändert ihn in "=<alias-name>"; und der angezeigte Text ist der Wert aus der Zelle <alias-name>.
* Wenn du bei der Eingabe des Namens in der Beschriftungsspalte einen Fehler machst und diesen korrigieren möchtest, kannst du ihn nicht einfach in den Alias Namen ändern. Stattdessen musst du zuerst den Alias Namen in etwas anderes ändern, dann den Textnamen in der Beschriftungsspalte korrigieren und dann den Alias Namen in der Wertspalte wieder in seinen ursprünglichen Namen ändern.

Eine Möglichkeit, diese Probleme zu umgehen, besteht darin, Textbeschriftungen voranzustellen, die Alias Namen entsprechen, mit einer festen Zeichenfolge zu versehen,
wodurch sie sich voneinander unterscheiden.
Beachte, dass "_" nicht funktioniert, da es in "=" umgewandelt wird. Ein Leerzeichen, obwohl unsichtbar, wird jedoch funktionieren.


Die folgende Tabelle zeigt einige Beispiele unter der Annahme, dass das Modell über eine Funktion namens "MeinWürfel" verfügt:
Die folgende Tabelle zeigt einige Beispiele unter der Annahme, dass das Modell über eine Funktion namens "MeinWürfel" verfügt:
Line 128: Line 149:
|-
|-
|Parametrische Länge eines Würfels des Arbeitsbereiches Part
|Parametrische Länge eines Würfels des Arbeitsbereiches Part
|=MeinWürfel.Length
|{{Incode|<nowiki>=MeinWürfel.Length</nowiki>}}
|Länge mit den Einheiten mm
|Länge mit der Einheit mm
|-
|-
|Volumen des Würfels
|Volumen des Würfels
|=MeinWürfel.Shape.Volume
|{{Incode|<nowiki>=MeinWürfel.Shape.Volume</nowiki>}}
|Volumen in mm&sup3; ohne Einheiten
|Volumen in mm&sup3; ohne Einheit
|-
|-
|Typ des Würfel-"Shapes"
|Typ des Würfel-"Shapes"
|=MeinWürfel.Shape.ShapeType
|{{Incode|<nowiki>=MeinWürfel.Shape.ShapeType</nowiki>}}
|String: Solid
|Zeichenkette: Solid
|-
|-
|Beschriftung des Würfels
|Beschriftung des Würfels
|=MeinWürfel.Label
|{{Incode|<nowiki>=MeinWürfel.Label</nowiki>}}
|String: MeinWürfel
|Zeichenkette: MeinWürfel
|-
|-
|x-Koordinate des Massenschwerpunktes des Würfels
|X-Koordinate des Massenschwerpunktes des Würfels
|=MeinWürfel.Shape.CenterOfMass.x
|{{Incode|<nowiki>=MeinWürfel.Shape.CenterOfMass.x</nowiki>}}
|x-Koordinate in mm ohne Einheiten
|Koordinate in mm ohne Einheit
|}
|}


<span id="Spreadsheet_data_in_expressions"></span>
=== Tabellendaten in Ausdrücken ===
===Tabellendaten in Ausdrücken===


Um Kalkulationstabellendaten in anderen Teilen von FreeCAD zu verwenden, wirst du normalerweise einen [[Expressions/de|Ausdruck]] erstellen, der sich auf die Kalkulationstabelle und die Zelle bezieht, die die Daten enthält, die du verwenden möchtest. Du kannst Kalkulationstabellen über den Namen oder die Benennung identifizieren, und du kannst die Zellen über die Adresse oder über einen Alias identifizieren. Die Autovervollständigung ist für alle Formen des Verweises verfügbar.
Um Tabellendaten in anderen Teilen von FreeCAD benutzen zu können, wird ein vollständig definierter Name benötigt. Weil es möglich ist, mehrere Tabellenblätter in einem FreeCAD-Dokument zu haben, wird der Tabellenname zusammen mit der Zellenbezeichnung oder dem Zellen-Alias benötigt.
Die folgende Abbildung zeigt die Verwendung einer Aliasbezeichnung aus einem Tabellenblatt "MySheet" in einem Ausdruck im Arbeitsbereich PartDesign.


{|{{Prettytable}}
[[File:Expression usage1.png]]
!
!Kalkulationstabelle nach Name
!Kalkulationstabelle nach Benennung
|-
!Zelle nach Adresse
|{{incode|<nowiki>=Spreadsheet042.B5</nowiki>}}
|{{incode|<nowiki>=<<MySpreadsheet>>.B5</nowiki>}}
|-
!Zelle nach Alias
|{{incode|<nowiki>=Spreadsheet042.MyAlias</nowiki>}}
|{{incode|<nowiki>=<<MySpreadsheet>>.MyAlias</nowiki>}}
|}


<div class="mw-collapsible mw-collapsed">
Durch Eintippen von "M" werden die verfügbaren Namen mit "M" am Anfang angezeigt (siehe oben). Mit den Pfeiltasten kann "MySheet" ausgewählt werden. {{KEY|Enter}} vervollständigt den Ausdruck. Es kann auch bis zum Ende eingetippt oder mit der Maus die Auswahl getroffen werden.
Die empfohlene Art, auf Tabellenblattdaten zu referenzieren, ist die Verwendung der Tabellenbenennung (Label) und des Zellaliasnamens. Eine ausführlichere Erklärung der Vor- und Nachteile der Referenzierungsarten findest du im erweiterten Abschnitt unten.
<div class="mw-collapsible-content">


Die Verwendung der Kalkulationstabellenbeschriftung hat den Vorteil, dass sie frei geändert werden kann, um den Inhalt der Kalkulationstabelle zu beschreiben. Es ist auch einfacher, die verwendete Kalkulationstabelle zu identifizieren, da der Text im Ausdruck mit der in der Modell- und Eigenschaftsansicht angezeigten Beschriftung übereinstimmt. Wenn du dich entscheidesz, die Beschriftung einer Kalkulationstabelle zu ändern, werden bestehende Verweise auf den Inhalt der Kalkulationstabelle aktualisiert, sodass du deine Ausdrücke nicht durch Umbenennen der Kalkulationstabelle zerstörst. Der interne Name der Kalkulationstabelle ist nur im Ausdruckseditor verfügbar. Wenn du also den internen Namen verwendest und später die Kalkulationstabellen umbenennst, kannst du deine Ausdrucksdaten nur schwer zu deiner Quelle zurückverfolgen.
[[File:Expression usage2.png]]


Beachte, dass beim Anlegen eines neuen Kalkulationstabellenblatts der Name und die Beschriftung identisch sind, so dass es leicht passieren kann, dass du versehentlich den Namen des Kalkulationstabellenblatts statt der Beschriftung verwendest. Eine einfache Möglichkeit, dies zu vermeiden, besteht darin, der Kalkulationstabelle einen aussagekräftigen Namen zu geben, bevor du sie in Ausdrücken verwendest.
Durch Eintippen von "n" werden die verfügbaren Namen mit "n" am Anfang angezeigt (siehe oben).
"number" kann nun, wie oben beschrieben, ausgewählt werden.
Wenn ein Name mit einem gültigen Inhalt angegeben wurde, zeigt das Ergebnisfeld die berechnete Länge (siehe unten).


Du kannst zwar die Zeilen- und Spaltennummer in einem Ausdruck verwenden, um auf eine Zelle zu verweisen, aber am besten ist es, der Zelle einen Aliasnamen zu geben und diesen zu verwenden. Siehe [[#Zelleigenschaften|Zelleigenschaften]] oben, wie du den Alias festlegst. Wenn die Daten in Zelle B1 beispielsweise den Längenparameter für ein Objekt enthalten, würde ein Alias-Name von {{incode|MyObject_Length}} ermöglichen, dass der Wert als {{incode|<<MyParams>>.MyObject_Length}} anstelle von {{incode|Spreadsheet.B1}} referenziert wird. Alias-Namen sind nicht nur viel einfacher zu lesen und zu verstehen, sie lassen sich auch viel leichter ändern, wenn du dich entscheidest, die Struktur deines Arbeitsblatts anzupassen. Die Verwendung eines Alias hat auch den Vorteil, dass es einfacher ist zu sehen, welche Zellen verwendet werden, um andere Teile des Dokuments zu steuern. Beachte, dass FreeCAD die Positionsbezüge in Ausdrücken automatisch anpasst, wenn du Zeilen und Spalten in der Tabelle einfügst oder entfernst. Das heißt, auch wenn du Zeilen- und Spaltennummern in einem Ausdruck verwendest, kannst du Zeilen und Spalten einfügen, ohne die Bezüge zu den umgebenden Zellen zu unterbrechen.
[[File:Expression usage3.png]]


</div>
Weiteres Tippen, wie das Hinzufügen eines "+"-Zeichens, führen zu einem Ausdruck, der nicht mehr gültig ist, was angezeigt wird.
</div>
Das Fortsetzen der Vervollständigung des Ausdrucks kann wieder zu einem gültigen Ausdruck führen.


<span id="Complex_models_and_recomputes"></span>
=== Komplexe Modelle und Neuberechnungen ===

Das Bearbeiten einer Kalkulationstabelle löst eine Neuberechnung des 3D Modells aus, auch wenn die Änderungen keine Auswirkungen auf das Modell haben. Bei einem komplexen Modell kann eine Neuberechnung sehr lange dauern, und nach jeder einzelnen Bearbeitung warten zu müssen, ist natürlich ziemlich lästig.

Es gibt drei Lösungen, die sich damit beschäftigen:
# Überspringe vorübergehend Neuberechnungen:
#* In der [[Tree_view/de|Baumansicht]] das [[Image:Document.svg|24px]] Dokument rechtsklicken, das die Kalkulationstabelle enthält.
#* Wähle die Option {{MenuCommand|Überspringe Neuberechnen}} aus dem Kontextmenü.
#* Diese Lösung hat einen großen Nachteil. Neue Werte, die in das Arbeitsblatt eingegeben werden, werden nicht angezeigt, bis das Dokument neu berechnet wird. Stattdessen wird {{incode|#PENDING}} angezeigt.
#* Du kannst entweder manuell neu berechnen, durch verwenden des [[Std_Refresh/de|Std Aktualisieren]] Befehls, oder deaktivieren von{{MenuCommand|Überspringe Neuberechnen}}, wenn du mit der Bearbeitung fertig bist.
# Verwende ein Makro, um Neuberechnungen während der Bearbeitung eines Tabellenblatts automatisch zu überspringen:
#* Lade [https://forum.freecadweb.org/viewtopic.php?f=8&t=48600#p419301 skipSheet.FCMacro] herunter und führe es aus.
#* Diese Lösung spart ein paar Schritte im Vergleich zur ersten Lösung, hat aber auch den erwähnten Nachteil.
# Lege das Tabellenblatt in eine separate [[File_Format_FCStd/de|FreeCAD Datei]]:
#* Du kannst Tabellenkalkulationsdaten aus einer externen {{FileName|.FCStd}} Datei mit dieser Syntax referenzieren: {{incode|<nowiki>=NameOfFile#<<MySpreadsheet>>.MyAlias</nowiki>}}.
#* Der Vorteil, das Tabellenblatt in einer anderen Datei zu haben, gegenüber dem Ausschalten der Neuberechnung, ist, dass das Arbeitsblatt selbst neu berechnet wird.
#* Der Nachteil ist, dass das Modell nach Änderungen am Tabellenblatt nicht automatisch neu berechnet wird.
#* In dem Szenario, in dem du zuerst die 'Tabellenblatt' Datei öffnest, einen oder mehrere Werte änderst und dann die 'Modell' Datei öffnest, wird es keinen Hinweis geben, dass das Modell neu berechnet werden muss. Wenn jedoch beide Dateien geöffnet sind, wird das [[Std_Refresh/de|Std Aktualisieren]] Symbol für die "Modell" Datei nach Änderungen in der "Tabellenblatt" Datei korrekt aktualisiert.

<span id="Units"></span>
== Einheiten ==
== Einheiten ==


Die Kalkulationstabelle hat eine Vorstellung von Dimension (Einheiten), die mit Zellwerten verbunden ist. Eine Zahl, die ohne eine zugehörige Einheit eingegeben wird, hat keine Dimension. Die Einheit sollte direkt nach dem Zahlenwert eingegeben werden, ohne Leerzeichen dazwischen. Wenn eine Zahl eine zugehörige Einheit hat, wird diese Einheit in allen Berechnungen verwendet. Zum Beispiel ergibt die Multiplikation von zwei Längen mit der Einheit mm eine Fläche mit der Einheit mm&sup2;.
Die Tabelle hat eine Konzept für Dimensionen (Einheiten), die mit Zellwerten verbunden sind.
Eine Zahl ohne eine zugeordnete Einheit hat keine Dimension.
Die Einheit sollte unmittelbar nach dem Zahlenwert ohne Zwischenraum eingegeben werden.
Wenn einer Zahl eine Einheit zugeordnet ist, wird diese Einheit in allen Berechnungen verwendet.
Zum Beispiel ergibt die Multiplikation von zwei Längen mit der Einheit mm eine Fläche mit der Einheit mm&sup2;.


Wenn eine Zelle einen Wert enthält, der eine Dimension darstellt, sollte dieser mit der zugehörigen Einheit eingegeben werden. Während man in vielen einfachen Fällen mit einem dimensionslosen Wert auskommen kann, ist es unklug, die Einheit nicht einzugeben. Wenn ein Wert, der eine Bemaßung repräsentiert, ohne die zugehörige Einheit eingegeben wird, gibt es einige Sequenzen von Operationen, die FreeCAD veranlassen, sich über inkompatible Einheiten in einem Ausdruck zu beschweren, obwohl der Ausdruck eigentlich gültig sein sollte. (Dies kann besser durch anschauen [https://forum.freecadweb.org/viewtopic.php?f=3&t=34713&p=292455#p292438 dieser Forumsbeitrag] in den FreeCAD Foren verstanden werden.)
Wenn eine Zelle einen Wert enthält, der eine Dimension repräsentiert, sollte sie mit der zugehörigen Einheit eingegeben werden.
Während man in vielen einfachen Fällen auch mit einem dimensionslosen Wert auskommen könnte, sollte man trotzdem einen Wert mit der Einheit eingeben, wenn dieser eine Dimension darstellen soll.


Du kannst die für einen Zellenwert angezeigten Einheiten über die [[#Zelleigenschaften|Zelleigenschaften]] ändern. Dadurch wird der in der Zelle enthaltene Wert nicht geändert; es wird lediglich der vorhandene Wert für die Anzeige umgewandelt. Der Wert, der für Berechnungen verwendet wird, ändert sich nicht, und die Ergebnisse von Formeln, die den Wert verwenden, ändern sich nicht. Beispielsweise kann eine Zelle, die den Wert "5,08cm" enthält, als "2in" angezeigt werden, indem der Wert der Einheitenreiters in "in" geändert wird.
Man kann die dargestellte Einheit einer Zelle im Eigenschaftsdialog [[#Einheiten_tab|Einheiten tab]] (sieh oben) ändern.
Das ändert nicht den Wert in der Zelle, es konvertiert nur den existierenden Wert für die Anzeige.
Der Wert für die Berechnung wird nicht geändert und das Ergebnis der Berechnung bleibt gleich.
Zum Beispiel enthält eine Zelle den Wert "5.08cm". Er wird als "2in" angezeigt, wenn die Einheit auf der Registerkarte Einheiten in "in" geändert wird.


Eine dimensionslose Zahl kann im Zelleigenschaftendialog nicht in eine Zahl mit einer Einheit geändert werden. Man kann zwar eine Zeichenfolge für die Einheit eingeben, und diese Zeichenfolge wird angezeigt, aber die Zelle enthält immer noch eine dimensionslose Zahl. Um einen dimensionslosen Wert in einen Wert mit einer Dimension zu ändern, muss der Wert selbst mit seiner zugehörigen Einheit neu eingegeben werden.
Eine Zahl ohne Einheit kann durch den Eigenschaftsdialog nicht in eine Zahl mit Einheit umgewandelt werden.
Man kann eine Zeichenkette mit einer Einheitsbezeichnung eingeben, die dann auch angezeigt wird. Aber die Zelle enthält immer noch nur eine Zahl ohne Einheit. Um dies zu ändern, muss der Wert zusammen mit der Einheit erneut eingegeben werden.


Manchmal ist es notwendig, die Einheit von einer Zahl zu entfernen. Dies kann durch die Multiplikation einer 1 mit der reziproken Einheit erreicht werden.
Manchmal ist es notwendig, die Einheit von einer Zahl zu entfernen. Dies kann durch die Multiplikation einer 1 mit der reziproken Einheit erreicht werden.


<span id="Importing_and_exporting"></span>
== Importieren und Exportieren ==
== Importieren und Exportieren ==


<span id="CSV_format"></span>
Tabellen können im CSV-Format[https://de.wikipedia.org/wiki/CSV_(Dateiformat)] importiert und exportiert werden. Dieses Format kann von den meisten anderen Tabellenkalkulationsprogrammen wie Microsoft Excel oder LibreOffice Calc gelesen und geschrieben werden. Wenn Dateien nach FreeCAD importiert werden, muss das Trennzeichen, welches die Spalten trennt, das TAB-Zeichen sein. Dies kann üblicherweise in den Tabellenkalkulationsprogrammen vor dem Export eingestellt werden. Der Import einer CSV-Datei ist über das Menü {{MenuCommand|Spreadsheet → Kalkulationstabelle importieren}} oder durch einen Klick auf das Symbol [[Image:SpreadsheetImport.svg|24px]] möglich. Diese Import-Funktion öffnet keine Excel-Dateien oder andere Tabellenkalkulationsformate.
=== CSV Format ===


FreeCAD Tabellenblätter können im [https://de.wikipedia.org/wiki/CSV_(Dateiformat)] Format importiert und exportiert werden, welches auch von den meisten anderen Tabellenkalkulationsanwendungen wie Microsoft Excel oder LibreOffice Calc gelesen und geschrieben werden kann. Siehe [[Spreadsheet_Import/de|Tabellenblatt Import]] und [[Spreadsheet_Export/de|Tabellenblatt Export]] für weitere Informationen.
Tabellen im Excelformat "xlsx" können über das Menü {{MenuCommand|Datei → Importieren...}} importiert werden. Exceltabellen können auch durch den Menübefehl {{MenuCommand|Datei → Öffnen...}} oder mit einem Klick auf das Symbol [[Image:Document-open.svg|24px]] geöffnet werden. In diesem Fall wird ein neues Dokument mit einer Tabelle erzeugt. Es werden die folgenden Eigenschaften unterstützt:

<span id="XLSX_format"></span>
=== XLSX Format ===

Tabellenblätter im Excel-Format XLSX können mit dem Befehl [[Std_Import/de|Std Import]] oder dem Befehl [[Std_Open/de|Std Öffnen]] importiert werden. Die folgenden Funktionen werden unterstützt:


* alle Funktionen, die auch in der FreeCAD Tabellenblatt verfügbar sind. Andere Funktionen führen nach dem Import zu einem Fehler in der entsprechenden Zelle.
* alle Funktionen, die auch in der FreeCAD Tabellenblatt verfügbar sind. Andere Funktionen führen nach dem Import zu einem Fehler in der entsprechenden Zelle.
* Alias Namen für Zellen
* Alias Namen für Zellen
* Mehr als ein "Blatt" im Tabellenblatt. In diesem Fall wird für jede Excel-Tabelle eine FreeCAD Tabelle erstellt.
* Mehr als ein Blatt im Excel-Tabellenblatt. In diesem Fall wird für jedes Excel Blatt eine FreeCAD Tabelle erstellt.


Andere Funktionalität wird nicht in die FreeCAD Tabellenblätter importiert. Der Excel-Import ist {{Version|0.17}} von FreeCAD.
Andere Funktionalität wird nicht in das FreeCAD Tabellenblatt importiert.


<span id="Printing"></span>
== Derzeitige Begrenzungen ==
== Drucken ==


Um die erforderlichen Seiteneinstellungen für den Druck von FreeCAD-Tabellen einzurichten, werden diese in eine [[TechDraw_SpreadsheetView/de|TechDraw Tabellenansicht]] eingefügt.
FreeCAD prüft auf zyklische Abhängigkeiten.
Nach dem Entwurf endet diese Prüfung auf der Ebene des Tabellenkalkulationsobjekts.
Infolgedessen solltest du keine Tabellenkalkulation haben, die beides enthält
Zellen, deren Werte zur Angabe von Parametern für das Modell verwendet werden,
und Zellen, deren Werte die Ausgabe aus dem Modell verwenden.
Du kannst z.B. keine Zellen haben, die die Länge, Breite und Höhe eines Objekts festlegen, und eine weitere Zelle, die das Gesamtvolumen der resultierenden Form referenziert.
Diese Einschränkung kann durch zwei Tabellenkalkulationen überwunden werden:
eine, die als Datenquelle für die Eingabeparameter des Modells dient
und die andere verwendet für Berechnungen auf der Grundlage der resultierenden Geometriedaten.


<span id="Current_limitations"></span>
Wenn Zellen kopiert werden, wird nur der Inhalt (Ausdruck/Wert) kopiert.
== Aktuelle Begrenzungen ==
Die oben beschriebenen [[Spreadsheet_Workbench#Cell_Properties/de|Zelleigenschaften]] werden nicht kopiert.


FreeCAD prüft auf zyklische Abhängigkeiten wenn eine Neuberechnung ausgeführt wird. Nach dem Entwurf endet diese Prüfung auf der Ebene des Tabellenkalkulationsobjekts.
Für frühere Versionen siehe [[Spreadsheet_legacy/de|Kalkulationstabellen Erbe]]
Infolgedessen solltest du keine Tabellenkalkulation haben, die beides enthält Zellen, deren Werte zur Angabe von Parametern für das Modell verwendet werden, und Zellen, deren Werte die Ausgabe aus dem Modell verwenden. Du kannst z.B. keine Zellen haben, die die Länge, Breite und Höhe eines Objekts festlegen, und eine weitere Zelle, die das Gesamtvolumen der resultierenden Form referenziert.
Diese Einschränkung kann durch zwei Tabellenkalkulationen überwunden werden: eine, die als Datenquelle für die Eingabeparameter des Modells dient und die andere verwendet für Berechnungen auf der Grundlage der resultierenden Geometriedaten.


== Cell binding ==
==Grundlagen Skripterstellen==

{{Version|0.20}}

It is possible to bind the content of cells to other spreadsheet cells. This can be useful when dealing with large tables or to get cell content from another spreadsheet.

=== Create binding ===

To bind, for example, the cell range A3-C4 to the cell range B1-D2:

<ol>
<li>
Select the cell range A3-C4.
</li>
<li>
Right-click and select {{MenuCommand|Bind...}} from the context menu.
</li>
<li>
The {{MenuCommand|Bind Spreadsheet Cells}} dialog opens.
</li>
<li>
Set the range B1-D2 for the {{MenuCommand|To cells}}:
<br>
[[File:Spreadsheet_binding-dialog.png]]
</li>
<li>
Press {{Button|OK}}.
</li>
<li>
Bound cells have a blue border to highlight the binding.
</li>
<li>
If you now enter something in cell C1, the same will immediately appear in cell B3.
</li>
</ol>

[[File:Spreadsheet_binding-result.png]]
{{Caption|The spreadsheet may now look like this}}

=== Change binding ===

# Right-click a bound cell (there is no need to highlight the whole bound range) and select {{MenuCommand|Bind...}} from the context menu.
# The {{MenuCommand|Bind Spreadsheet Cells}} dialog opens.
# Change one or more options. Note that the {{MenuCommand|Bind cells}}, the bound cell range, cannot be changed.
# Press {{Button|OK}}.

=== Remove binding ===

# Right-click a bound cell (there is no need to highlight the whole bound range) and select {{MenuCommand|Bind...}} from the context menu.
# The {{MenuCommand|Bind Spreadsheet Cells}} dialog opens.
# Press {{Button|Unbind}}.

===Notes===

* The {{MenuCommand|Hide dependency of binding}} option can be used to prevent problems with cyclic dependencies between spreadsheets. Selecting it is necessary when, for example, cells in ''Spreadsheet A'' are bound to ''Spreadsheet B'', while cells in ''Spreadsheet B'', in turn, are bound to some other cells in ''Spreadsheet A''. This option should be used with caution:
** Hiding dependencies can be dangerous because broken dependencies can damage your FreeCAD file. For example, when you delete a spreadsheet you will not be warned about hidden dependencies.
** When you open a document with a spreadsheet containing a hidden dependency, you will get the spreadsheet marked to be recomputed. This is because a cyclic dependency cannot be recomputed automatically. To recompute the [[Std_Refresh|Std Refresh]] tool must be used.
* The cell binding has a range check and warns you about mismatched ranges. For example binding 1x3 cells to 3x2 cells cannot work because it is unknown which 3 cells of the original 6 cells should be used.
* You cannot change the cell range of an existing binding. You must first unbind the cells and then create a new binding.
* The frame color indicating the binding cannot be changed yet.

== Configuration tables ==

{{Version|0.20}}

You can use Spreadsheets to create configuration tables with sets of predefined parameters for your model, and then dynamically change which configuration to use. See [https://forum.freecadweb.org/viewtopic.php?f=17&t=42183 this Forum post] if you want to know more about the inner workings of this feature.

<div class="mw-collapsible mw-collapsed toccolours">

Expand this section for a brief tutorial on creating a configuration table.

<div class="mw-collapsible-content">

<ol>
<li>
In a new document, first create a [[Std_Part|Std Part]], then create a [[Part_Box|Part Box]], a [[Part_Cylinder|Part Cylinder]] and a Spreadsheet.
</li>
<li>
The Box and the Cylinder are automatically placed in the [[Std_Part|Std Part]] container. Manually put the Spreadsheet in the container as well.
</li>
<li>
In the Spreadsheet enter the content as shown below. Set the alias for B2 as {{Value|width}}, C2 as {{Value|length}} and D2 as {{Value|radius}}:
<br>
[[File:Spreadsheet_configuration_table_screenshot_4.png]]
</li>
<li>
Bind the [[Expressions|expressions]] {{Value|Spreadsheet.width}} and {{Value|Spreadsheet.length}} to the Box's properties {{PropertyData|Width}} and {{PropertyData|Length}}, respectively:
<br>
[[File:Spreadsheet_configuration_table_screenshot_2.png]]
</li>
<li>
Bind the expression {{Value|Spreadsheet.radius}} to the Cylinder's property {{PropertyData|Radius}}. Also change the {{PropertyData|Height}} of the Cylinder to {{Value|5 mm}} so that it is lower than the Box.
</li>
<li>
Right-click the cell A2 in the Spreadsheet and select {{MenuCommand|Configuration table...}} from the context menu.
</li>
<li>
The {{MenuCommand|Setup Configuration Table}} dialog opens.
</li>
<li>
Enter the following:
<br>
[[File:Spreadsheet_configuration_table_screenshot_5.png]]
</li>
<li>
Press {{Button|OK}}.
</li>
<li>
A new property called {{PropertyData|Configuration}} is be added to the [[Std_Part|Std Part]] container to choose the configuration as shown below:
<br>
[[File:Spreadsheet_configuration_table_screenshot_6.png]]
</li>
</ol>

You can use either a [[Std_LinkMake|Std Link]] or a [[PartDesign_SubShapeBinder|PartDesign SubShapeBinder]] to instantiate a [https://forum.freecadweb.org/viewtopic.php?f=17&t=42183&p=532130#p532130 Variant Instance] of a configurable object with the following steps:

# Create a [[Std_LinkMake|Std Link]] to the [[Std_Part|Std Part]] container and set its {{PropertyData|Link Copy On Change}} property to {{Value|Enabled}}.
# Move the Link to a new place by changing its {{PropertyData|Placement}} so that it is easier to distinguish from the original object.
# Select a different {{PropertyData|Configuration}} for the Link to create a variant instance.

Similar steps apply to a [[PartDesign_SubShapeBinder|PartDesign SubShapeBinder]], except that its property for activating a variant instance is called {{PropertyData|Bind Copy On Change}}.

</div>
</div>

<span id="Scripting_basics"></span>
==Grundlagen Skripten==


{{Code|code=
{{Code|code=
import Spreadsheet
import Spreadsheet
sheet = App.ActiveDocument.addObject("Spreadsheet::Sheet")
sheet = App.ActiveDocument.addObject("Spreadsheet::Sheet","MySpreadsheet")
sheet.Label = "Dimensions"
sheet.Label = "Dimensions"

sheet.set('A1','10mm')
sheet.recompute()
sheet.get('A1')

sheet.setAlias('B1','Diameter')
sheet.set('Diameter','20mm')
sheet.recompute()
sheet.get('Diameter')
}}
}}



{{Docnav/de
{{Docnav/de
|[[Sketcher Workbench/de|Skizzierer Arbeitsbereich]]
|[[Sketcher_Workbench/de|Skizzierer Arbeitsbereich]]
|[[Start Workbench/de|Start Arbeitsbereich]]
|[[Start_Workbench/de|Start Arbeitsbereich]]
|IconL=Workbench_Sketcher.svg
|IconL=Workbench_Sketcher.svg
|IconR=Workbench_Start.svg
|IconR=Workbench_Start.svg

Latest revision as of 13:35, 19 November 2023

Tabellenkalkulation Arbeitsbereichssymbol

Einführung

Der Arbeitsbereich Tabellenkalkulation ermöglicht die Erstellung und Bearbeitung von Tabellen, Daten aus der Tabellenkalkulation als Parameter in einem Modell zu verwenden, die Tabellenkalkulation mit aus einem Modell abgerufenen Daten zu füllen, Berechnungen durchzuführen und die Daten in andere Tabellenkalkulationsprogramme wie LibreOffice oder Microsoft Excel zu exportieren.

Eine Tabellenblatt mit bestimmten Zellen, die mit Text und Mengen gefüllt sind

Werkzeuge

  • Importieren: eine CSV Datei in ein Tabellenblatt importieren.
  • Exportieren: eine CSV Datei aus einem Tabellenblatt exportieren.
  • Oben ausrichten: Richtet den Inhalt der markierten Zellen nach oberen aus.
  • Stil fett: Der Inhalt der ausgewählten Zellen wird fett dargestellt.
  • Stil kursiv: setzt den Inhalt der ausgewählten Zellen kursiv.
  • Setze Alias: legen den Alias für eine ausgewählte Zelle fest.
  • Schwarz und Weiß legen die Vorder- und Hintergrundfarben der ausgewählten Zellen fest.

Einstellungen

Removing cells can be dangerous

Note that deleting or removing cells with data can break the spreadsheet and your model if it relies on the spreadheet. You are not prewarned if this happens.

Einfügen und Entfernen von Zeilen und Spalten

Rows and columns can be inserted or removed by right-clicking a row or column header and selecting the appropriate option from the contex menu. It is possible to select multiple rows or columns first. Either by holding down the Ctrl key while selecting the headers, or by holding down the left mouse button and dragging.

Edit cells

The content of a cell can be edited by selecting the cell and entering a value in the Content inputbox at the top of the window. To edit a cell in-place, select it and press F2, or double-click it.

Delete cells

To delete one or more cells select them and press Del. This will delete their contents, their properties and their aliases. To only delete the content of a cell it should be edited instead.

Zellen ausschneiden und einfügen

Cut and copy-paste operations can be used on spreadsheets cells. You can use the normal shortcuts for these operations: Ctrl+X, Ctrl+C and Ctrl+V respectively. To select multiple cells hold down the Ctrl key while selecting, or hold down the left mouse button and drag to select a rectangular cell range.

The cut and copy operations store the contents, properties and aliases of the cells on the Clipboard. The paste operation writes the data in such a way that the content of the top left cell of the stored data is dropped in the active cell. Other stored content is placed relative to that cell. Formulas are updated accordingly. Aliases are only pasted if they are unique.

Zelleigenschaften

Die Eigenschaften einer Tabellenzelle können mit einem Rechtsklick auf die Zelle und Auswahl von Eigenschaften... im Kontextmenü geändert werden. Folgender Dialog wird geöffnet:

Wie in den Reitern angezeigt können die folgenden Eigenschaften geändert werden:

  • Farbe: Text- und Hintergrundfarbe
  • Ausrichtung: horizontale und vertikale Textausrichtung
  • Stil: Textstil: fett, kursiv, unterstrichen
  • Einheiten: Anzeigeeinheiten für diese Zelle. Den Abschnitt Einheiten unten beachten.
  • Alias: Einen Alias für diese Zelle festlegen. Dieser Alias kann in Zellformeln und auch in allgemeinen Ausdrücken verwendet werden; siehe Abschnitt Tabellendaten in Ausdrücken für weitere Informationen.

Zellausdrücke

Eine Tabellenzelle kann eine Zahl, einen Text oder einen Ausdruck enthalten. Ausdrücke müssen mit einem Gleichheitszeichen '=' beginnen.

Zellausdrücke können Zahlen, Funktionen, Verweise auf andere Zellen und Verweise auf Eigenschaften des Modells enthalten (Siehe aber Aktuelle Einschränkungen weiter unten). Eine Zelle kann über ihre Adresse (GROSSBUCHSTABEN für die Spalte + Zeilennummer, z.B. B4) referenziert werden oder über ihren Alias.

Anmerkung: Zellausdrücke werden von FreeCAD als Programmiercode behandelt. Wird also der Inhalt einer Zelle bearbeiten, kann es sein, dass der sichtbare Inhalt nicht den Anzeigeeinstellungen folgt:

  • Das Dezimaltrennzeichen ist immer ein Punkt, aber für die Eingabe von Werten können auch Kommas verwendet werden.
  • Die Anzahl der angezeigten Dezimalstellen kann von denen in den Voreinstellungen abweichen.

Referenzen zu Objekten im Modell werden unter Referenzen auf CAD-Daten unten erklärt. Die Verwendung von Tabellenkalkulationszellenwerten zur Definition von Modelleigenschaften wird unter Tabellenkalkulationsdaten in Ausdrücken weiter unten erläutert. Weitere Besonderheiten zur Bildung von Ausdrücken findest du unter Ausdrücke.

Wechselwirkung zwischen Kalkulationstabellen und dem CAD Modell

Daten in den Zellen einer Kalkulationstabelle können in CAD Modellparameterausdrücken verwendet werden. So kann eine Tabellenkalkulationstabelle als Quelle für Parameterwerte verwendet werden, die im gesamten Modell verwendet werden, die Werte effektiv an einem Ort zu sammeln. Wenn Werte in der Kalkulationstabelle geändert werden, werden sie im ganzen Modell übertragen.

In ähnlicher Weise können Eigenschaften von CAD Modellobjekten in Ausdrücken in Kalkulationstabellenzellen verwendet werden. Dies ermöglicht die Verwendung von Objekteigenschaften wie Volumen oder Fläche in der Kalkulationstabelle. Wenn der Name eines Objekts im CAD Modell geändert wird, wird die Änderung automatisch auf alle Referenzen in Kalkulationstabellenausdrücken mit dem geänderten Namen übertragen.

In einem Dokument kann mehr als eine Kalkulationstabelle verwendet werden. Eine Kalkulationstabelle kann entweder über ihren Namen oder ihre Beschriftung identifiziert werden.

FreeCAD vergibt automatisch einen eindeutigen Namen für eine Kalkulationstabelle, wenn sie erstellt wird. Diese Namen folgen dem Muster Spreadsheet, Spreadsheet001, Spreadsheet002 und so weiter. Der Name kann nicht geändert werden, und er ist in den Eigenschaften des Arbeitsblatts nicht sichtbar. Er kann verwendet werden, um in einem Ausdruck auf das Tabellenblatt zu verweisen (siehe Tabellendaten in Ausdrücken unten).

Die Benennung (Label) einer Kalkulationstabelle wird bei der Erstellung automatisch auf den Namen der Kalkulationstabelle gesetzt. Im Gegensatz zum Namen kann die Benennung geändert werden, z. B. in der Eigenschafteneditor oder über die Kontextmenüaktion Umbenennen. In der Standard-Voreinstellung akzeptiert FreeCAD keine doppelten Benennungen, aber es gibt eine Voreinstellung um dieses zu überschreiben. Kalkulationstabellen mit doppelten Benennungen in demselben Dokument können nicht durch ihre Benennung referenziert werden.

FreeCAD prüft auf zyklische Abhängigkeiten. Siehe Aktuelle Begrenzungen.

Referenzen auf CAD-Daten

Wie oben angegeben, kann man in Kalkulationstabellenausdrücken auf Daten aus dem CAD Modell verweisen.

Die folgende Tabelle zeigt einige Beispiele unter der Annahme, dass das Modell über eine Funktion namens "MeinWürfel" verfügt:

CAD-Daten Zelle im Tabellenblatt Ergebnis
Parametrische Länge eines Würfels des Arbeitsbereiches Part =MeinWürfel.Length Länge mit der Einheit mm
Volumen des Würfels =MeinWürfel.Shape.Volume Volumen in mm³ ohne Einheit
Typ des Würfel-"Shapes" =MeinWürfel.Shape.ShapeType Zeichenkette: Solid
Beschriftung des Würfels =MeinWürfel.Label Zeichenkette: MeinWürfel
X-Koordinate des Massenschwerpunktes des Würfels =MeinWürfel.Shape.CenterOfMass.x Koordinate in mm ohne Einheit

Tabellendaten in Ausdrücken

Um Kalkulationstabellendaten in anderen Teilen von FreeCAD zu verwenden, wirst du normalerweise einen Ausdruck erstellen, der sich auf die Kalkulationstabelle und die Zelle bezieht, die die Daten enthält, die du verwenden möchtest. Du kannst Kalkulationstabellen über den Namen oder die Benennung identifizieren, und du kannst die Zellen über die Adresse oder über einen Alias identifizieren. Die Autovervollständigung ist für alle Formen des Verweises verfügbar.

Kalkulationstabelle nach Name Kalkulationstabelle nach Benennung
Zelle nach Adresse =Spreadsheet042.B5 =<<MySpreadsheet>>.B5
Zelle nach Alias =Spreadsheet042.MyAlias =<<MySpreadsheet>>.MyAlias

Die empfohlene Art, auf Tabellenblattdaten zu referenzieren, ist die Verwendung der Tabellenbenennung (Label) und des Zellaliasnamens. Eine ausführlichere Erklärung der Vor- und Nachteile der Referenzierungsarten findest du im erweiterten Abschnitt unten.

Die Verwendung der Kalkulationstabellenbeschriftung hat den Vorteil, dass sie frei geändert werden kann, um den Inhalt der Kalkulationstabelle zu beschreiben. Es ist auch einfacher, die verwendete Kalkulationstabelle zu identifizieren, da der Text im Ausdruck mit der in der Modell- und Eigenschaftsansicht angezeigten Beschriftung übereinstimmt. Wenn du dich entscheidesz, die Beschriftung einer Kalkulationstabelle zu ändern, werden bestehende Verweise auf den Inhalt der Kalkulationstabelle aktualisiert, sodass du deine Ausdrücke nicht durch Umbenennen der Kalkulationstabelle zerstörst. Der interne Name der Kalkulationstabelle ist nur im Ausdruckseditor verfügbar. Wenn du also den internen Namen verwendest und später die Kalkulationstabellen umbenennst, kannst du deine Ausdrucksdaten nur schwer zu deiner Quelle zurückverfolgen.

Beachte, dass beim Anlegen eines neuen Kalkulationstabellenblatts der Name und die Beschriftung identisch sind, so dass es leicht passieren kann, dass du versehentlich den Namen des Kalkulationstabellenblatts statt der Beschriftung verwendest. Eine einfache Möglichkeit, dies zu vermeiden, besteht darin, der Kalkulationstabelle einen aussagekräftigen Namen zu geben, bevor du sie in Ausdrücken verwendest.

Du kannst zwar die Zeilen- und Spaltennummer in einem Ausdruck verwenden, um auf eine Zelle zu verweisen, aber am besten ist es, der Zelle einen Aliasnamen zu geben und diesen zu verwenden. Siehe Zelleigenschaften oben, wie du den Alias festlegst. Wenn die Daten in Zelle B1 beispielsweise den Längenparameter für ein Objekt enthalten, würde ein Alias-Name von MyObject_Length ermöglichen, dass der Wert als <<MyParams>>.MyObject_Length anstelle von Spreadsheet.B1 referenziert wird. Alias-Namen sind nicht nur viel einfacher zu lesen und zu verstehen, sie lassen sich auch viel leichter ändern, wenn du dich entscheidest, die Struktur deines Arbeitsblatts anzupassen. Die Verwendung eines Alias hat auch den Vorteil, dass es einfacher ist zu sehen, welche Zellen verwendet werden, um andere Teile des Dokuments zu steuern. Beachte, dass FreeCAD die Positionsbezüge in Ausdrücken automatisch anpasst, wenn du Zeilen und Spalten in der Tabelle einfügst oder entfernst. Das heißt, auch wenn du Zeilen- und Spaltennummern in einem Ausdruck verwendest, kannst du Zeilen und Spalten einfügen, ohne die Bezüge zu den umgebenden Zellen zu unterbrechen.

Komplexe Modelle und Neuberechnungen

Das Bearbeiten einer Kalkulationstabelle löst eine Neuberechnung des 3D Modells aus, auch wenn die Änderungen keine Auswirkungen auf das Modell haben. Bei einem komplexen Modell kann eine Neuberechnung sehr lange dauern, und nach jeder einzelnen Bearbeitung warten zu müssen, ist natürlich ziemlich lästig.

Es gibt drei Lösungen, die sich damit beschäftigen:

  1. Überspringe vorübergehend Neuberechnungen:
    • In der Baumansicht das Dokument rechtsklicken, das die Kalkulationstabelle enthält.
    • Wähle die Option Überspringe Neuberechnen aus dem Kontextmenü.
    • Diese Lösung hat einen großen Nachteil. Neue Werte, die in das Arbeitsblatt eingegeben werden, werden nicht angezeigt, bis das Dokument neu berechnet wird. Stattdessen wird #PENDING angezeigt.
    • Du kannst entweder manuell neu berechnen, durch verwenden des Std Aktualisieren Befehls, oder deaktivieren vonÜberspringe Neuberechnen, wenn du mit der Bearbeitung fertig bist.
  2. Verwende ein Makro, um Neuberechnungen während der Bearbeitung eines Tabellenblatts automatisch zu überspringen:
    • Lade skipSheet.FCMacro herunter und führe es aus.
    • Diese Lösung spart ein paar Schritte im Vergleich zur ersten Lösung, hat aber auch den erwähnten Nachteil.
  3. Lege das Tabellenblatt in eine separate FreeCAD Datei:
    • Du kannst Tabellenkalkulationsdaten aus einer externen .FCStd Datei mit dieser Syntax referenzieren: =NameOfFile#<<MySpreadsheet>>.MyAlias.
    • Der Vorteil, das Tabellenblatt in einer anderen Datei zu haben, gegenüber dem Ausschalten der Neuberechnung, ist, dass das Arbeitsblatt selbst neu berechnet wird.
    • Der Nachteil ist, dass das Modell nach Änderungen am Tabellenblatt nicht automatisch neu berechnet wird.
    • In dem Szenario, in dem du zuerst die 'Tabellenblatt' Datei öffnest, einen oder mehrere Werte änderst und dann die 'Modell' Datei öffnest, wird es keinen Hinweis geben, dass das Modell neu berechnet werden muss. Wenn jedoch beide Dateien geöffnet sind, wird das Std Aktualisieren Symbol für die "Modell" Datei nach Änderungen in der "Tabellenblatt" Datei korrekt aktualisiert.

Einheiten

Die Kalkulationstabelle hat eine Vorstellung von Dimension (Einheiten), die mit Zellwerten verbunden ist. Eine Zahl, die ohne eine zugehörige Einheit eingegeben wird, hat keine Dimension. Die Einheit sollte direkt nach dem Zahlenwert eingegeben werden, ohne Leerzeichen dazwischen. Wenn eine Zahl eine zugehörige Einheit hat, wird diese Einheit in allen Berechnungen verwendet. Zum Beispiel ergibt die Multiplikation von zwei Längen mit der Einheit mm eine Fläche mit der Einheit mm².

Wenn eine Zelle einen Wert enthält, der eine Dimension darstellt, sollte dieser mit der zugehörigen Einheit eingegeben werden. Während man in vielen einfachen Fällen mit einem dimensionslosen Wert auskommen kann, ist es unklug, die Einheit nicht einzugeben. Wenn ein Wert, der eine Bemaßung repräsentiert, ohne die zugehörige Einheit eingegeben wird, gibt es einige Sequenzen von Operationen, die FreeCAD veranlassen, sich über inkompatible Einheiten in einem Ausdruck zu beschweren, obwohl der Ausdruck eigentlich gültig sein sollte. (Dies kann besser durch anschauen dieser Forumsbeitrag in den FreeCAD Foren verstanden werden.)

Du kannst die für einen Zellenwert angezeigten Einheiten über die Zelleigenschaften ändern. Dadurch wird der in der Zelle enthaltene Wert nicht geändert; es wird lediglich der vorhandene Wert für die Anzeige umgewandelt. Der Wert, der für Berechnungen verwendet wird, ändert sich nicht, und die Ergebnisse von Formeln, die den Wert verwenden, ändern sich nicht. Beispielsweise kann eine Zelle, die den Wert "5,08cm" enthält, als "2in" angezeigt werden, indem der Wert der Einheitenreiters in "in" geändert wird.

Eine dimensionslose Zahl kann im Zelleigenschaftendialog nicht in eine Zahl mit einer Einheit geändert werden. Man kann zwar eine Zeichenfolge für die Einheit eingeben, und diese Zeichenfolge wird angezeigt, aber die Zelle enthält immer noch eine dimensionslose Zahl. Um einen dimensionslosen Wert in einen Wert mit einer Dimension zu ändern, muss der Wert selbst mit seiner zugehörigen Einheit neu eingegeben werden.

Manchmal ist es notwendig, die Einheit von einer Zahl zu entfernen. Dies kann durch die Multiplikation einer 1 mit der reziproken Einheit erreicht werden.

Importieren und Exportieren

CSV Format

FreeCAD Tabellenblätter können im [1] Format importiert und exportiert werden, welches auch von den meisten anderen Tabellenkalkulationsanwendungen wie Microsoft Excel oder LibreOffice Calc gelesen und geschrieben werden kann. Siehe Tabellenblatt Import und Tabellenblatt Export für weitere Informationen.

XLSX Format

Tabellenblätter im Excel-Format XLSX können mit dem Befehl Std Import oder dem Befehl Std Öffnen importiert werden. Die folgenden Funktionen werden unterstützt:

  • alle Funktionen, die auch in der FreeCAD Tabellenblatt verfügbar sind. Andere Funktionen führen nach dem Import zu einem Fehler in der entsprechenden Zelle.
  • Alias Namen für Zellen
  • Mehr als ein Blatt im Excel-Tabellenblatt. In diesem Fall wird für jedes Excel Blatt eine FreeCAD Tabelle erstellt.

Andere Funktionalität wird nicht in das FreeCAD Tabellenblatt importiert.

Drucken

Um die erforderlichen Seiteneinstellungen für den Druck von FreeCAD-Tabellen einzurichten, werden diese in eine TechDraw Tabellenansicht eingefügt.

Aktuelle Begrenzungen

FreeCAD prüft auf zyklische Abhängigkeiten wenn eine Neuberechnung ausgeführt wird. Nach dem Entwurf endet diese Prüfung auf der Ebene des Tabellenkalkulationsobjekts. Infolgedessen solltest du keine Tabellenkalkulation haben, die beides enthält Zellen, deren Werte zur Angabe von Parametern für das Modell verwendet werden, und Zellen, deren Werte die Ausgabe aus dem Modell verwenden. Du kannst z.B. keine Zellen haben, die die Länge, Breite und Höhe eines Objekts festlegen, und eine weitere Zelle, die das Gesamtvolumen der resultierenden Form referenziert. Diese Einschränkung kann durch zwei Tabellenkalkulationen überwunden werden: eine, die als Datenquelle für die Eingabeparameter des Modells dient und die andere verwendet für Berechnungen auf der Grundlage der resultierenden Geometriedaten.

Cell binding

introduced in version 0.20

It is possible to bind the content of cells to other spreadsheet cells. This can be useful when dealing with large tables or to get cell content from another spreadsheet.

Create binding

To bind, for example, the cell range A3-C4 to the cell range B1-D2:

  1. Select the cell range A3-C4.
  2. Right-click and select Bind... from the context menu.
  3. The Bind Spreadsheet Cells dialog opens.
  4. Set the range B1-D2 for the To cells:
  5. Press OK.
  6. Bound cells have a blue border to highlight the binding.
  7. If you now enter something in cell C1, the same will immediately appear in cell B3.

The spreadsheet may now look like this

Change binding

  1. Right-click a bound cell (there is no need to highlight the whole bound range) and select Bind... from the context menu.
  2. The Bind Spreadsheet Cells dialog opens.
  3. Change one or more options. Note that the Bind cells, the bound cell range, cannot be changed.
  4. Press OK.

Remove binding

  1. Right-click a bound cell (there is no need to highlight the whole bound range) and select Bind... from the context menu.
  2. The Bind Spreadsheet Cells dialog opens.
  3. Press Unbind.

Notes

  • The Hide dependency of binding option can be used to prevent problems with cyclic dependencies between spreadsheets. Selecting it is necessary when, for example, cells in Spreadsheet A are bound to Spreadsheet B, while cells in Spreadsheet B, in turn, are bound to some other cells in Spreadsheet A. This option should be used with caution:
    • Hiding dependencies can be dangerous because broken dependencies can damage your FreeCAD file. For example, when you delete a spreadsheet you will not be warned about hidden dependencies.
    • When you open a document with a spreadsheet containing a hidden dependency, you will get the spreadsheet marked to be recomputed. This is because a cyclic dependency cannot be recomputed automatically. To recompute the Std Refresh tool must be used.
  • The cell binding has a range check and warns you about mismatched ranges. For example binding 1x3 cells to 3x2 cells cannot work because it is unknown which 3 cells of the original 6 cells should be used.
  • You cannot change the cell range of an existing binding. You must first unbind the cells and then create a new binding.
  • The frame color indicating the binding cannot be changed yet.

Configuration tables

introduced in version 0.20

You can use Spreadsheets to create configuration tables with sets of predefined parameters for your model, and then dynamically change which configuration to use. See this Forum post if you want to know more about the inner workings of this feature.

Expand this section for a brief tutorial on creating a configuration table.

  1. In a new document, first create a Std Part, then create a Part Box, a Part Cylinder and a Spreadsheet.
  2. The Box and the Cylinder are automatically placed in the Std Part container. Manually put the Spreadsheet in the container as well.
  3. In the Spreadsheet enter the content as shown below. Set the alias for B2 as width, C2 as length and D2 as radius:
  4. Bind the expressions Spreadsheet.width and Spreadsheet.length to the Box's properties DatenWidth and DatenLength, respectively:
  5. Bind the expression Spreadsheet.radius to the Cylinder's property DatenRadius. Also change the DatenHeight of the Cylinder to 5 mm so that it is lower than the Box.
  6. Right-click the cell A2 in the Spreadsheet and select Configuration table... from the context menu.
  7. The Setup Configuration Table dialog opens.
  8. Enter the following:
  9. Press OK.
  10. A new property called DatenConfiguration is be added to the Std Part container to choose the configuration as shown below:

You can use either a Std Link or a PartDesign SubShapeBinder to instantiate a Variant Instance of a configurable object with the following steps:

  1. Create a Std Link to the Std Part container and set its DatenLink Copy On Change property to Enabled.
  2. Move the Link to a new place by changing its DatenPlacement so that it is easier to distinguish from the original object.
  3. Select a different DatenConfiguration for the Link to create a variant instance.

Similar steps apply to a PartDesign SubShapeBinder, except that its property for activating a variant instance is called DatenBind Copy On Change.

Grundlagen Skripten

import Spreadsheet
sheet = App.ActiveDocument.addObject("Spreadsheet::Sheet","MySpreadsheet")
sheet.Label = "Dimensions"

sheet.set('A1','10mm')
sheet.recompute()
sheet.get('A1')

sheet.setAlias('B1','Diameter')
sheet.set('Diameter','20mm')
sheet.recompute()
sheet.get('Diameter')