iLogic bietet Regelfunktionen zum Lesen und Schreiben in Microsoft® Excel-Tabellen. Erweitern Sie zum Öffnen der Funktionen für Excel-Datenverknüpfungen im Bereich Snippets des iLogic-Dialogfelds Regel bearbeiten auf der Registerkarte System den Knoten Excel-Datenverknüpfungen.
Es sind zwei Arten von Excel-Datenverknüpfungen verfügbar:
Fügen Sie zum Lesen und Schreiben in anderen Dateiformaten einen benutzerdefinierten VB.NET-Code Ihren Regeln hinzu.
Verwenden Sie die entsprechende Funktion ThisBOM.Export
, um eine Baugruppen-Stückliste in Microsoft® Excel und in anderen Formaten zu exportieren.
Microsoft® Excel-Daten können in ein Inventor-Dokument eingebettet, mit diesem verknüpft oder in einer externen Datei gespeichert werden. Für die Nutzung dieser Funktionen ist die Angabe des Dateinamens oder einer verknüpften oder eingebetteten Excel-Datei erforderlich.
Zum Festlegen eines Dateinamens können Sie einen relativen oder absoluten Pfad angeben. Bei Verwendung von absoluten Pfaden können jedoch beim Senden des Modells an einen anderen Benutzer an einem anderen Computer Schwierigkeiten entstehen. Wenn kein Pfad angegeben wird, wird in iLogic davon ausgegangen, dass sich das Excel-Dokument im demselben Ordner befindet, in dem das aktuelle Inventor-Dokument gespeichert ist. Ein relativer Pfad bezieht sich auf den Ordner, der das Inventor-Dokument enthält.
iLogic sucht auch unter dem Arbeitsbereich-Projektpfad nach der Datei. Sie können als relativen Pfad einen Pfad unter dem Arbeitsbereich-Projektpfad verwenden.
Zu den unterstützten Dateinamenerweiterungen zählen .xls, .xlsx, .xlsm und.xlsb.
Sie können anstelle eines Dateinamens auch ein verknüpftes oder eingebettetes Arbeitsblatt angeben. Verwenden Sie die Syntax 3rd Party:Embedding#
für eingebettete Arbeitsblätter.
Verwenden Sie die Syntax 3rd Party:LinkedName.xls
für verknüpfte Arbeitsblätter. Geben Sie unter Drittanbieter den Namen an, der in der Baumstruktur des Inventor-Modells angezeigt wird.
Verwenden Sie zum Einbetten einer Tabelle die Option Verknüpfen im Dialogfeld Parameter. Ändern Sie nicht den Namen der eingebetteten Tabelle, der von Inventor vorgegeben wurde (z. B. Embedding 1). GoExcel
erfordert den ursprünglichen Namen.
:
in der Syntax 3rd Party:Name
kein Leerzeichen ein.Um eine Datei zu verknüpfen, klicken Sie auf Registerkarte Verwalten Gruppe Einfügen
Objekt einfügen, oder verwenden Sie Verknüpfen im Dialogfeld Parameter.
Sucht nach einer Zeile anhand einer oder mehrerer Spaltenwertkriterien.
Syntax
GoExcel.FindRow("filename", "sheetname", "first column title", "operator", value to look for, "second column title", "operator", value to look for, "third column title",...)
”filename”
Gibt die Datendatei an.
”sheetname”
Das Arbeitsblatt im Excel-Dokument, das die zu durchsuchende Tabelle enthält: Das Arbeitsblatt kann ein beliebiges, bereits vorhandenes Arbeitsblatt sein.
”first column title”
Der Titel der ersten Spalte in der Tabelle, die durchsucht werden soll: Spaltentitel befinden sich in der Regel in Zeile 1 beginnend bei Spalte A.
”operator”
Mögliche Werte:
value to look for
Ein Textwert oder ein numerischer Wert, der durch einen genauen Wert, einen Parameter oder eine lokale Variable angegeben wird.
”second column title”
Der Titel der zweiten Spalte in der zu durchsuchenden Tabelle
”operator”
<= , >= oder =
value to look for
”third column title”
Sucht eine Zeile auf der Grundlage mehrerer Kriterien.
Gibt Folgendes zurück
Die Zeilennummer (eine ganze Zahl), die die Suchkriterien erfüllt: Der Wert beträgt -1, wenn keine passende Zeile gefunden wurde.
Mögliche Fehler
Excel-Tabellenanforderungen
Beispiele
In den folgenden Beispielen wird der Wert der Parametervariable i
auf die Anzahl der Zeilen in der Tabelle festgelegt. Dia
ist gleich 0.2
, und Len
ist größer oder gleich 4.1
. Im ersten Beispiel wird auf ein externes und im zweiten Beispiel auf ein eingebettetes Arbeitsblatt verwiesen.
i = GoExcel.FindRow("mytable.xls", "Sheet1", "Dia", "=", 0.2, "len", ">=",4.1)
i = GoExcel.FindRow("3rd Party:Embedding 1", "Sheet1", "Dia", "=", 0.2, "len",">=", 4.1)
In diesen Beispielen wird die erste Bedingung Dia=.2
in Zeile 5, 6 und 7 erfüllt. Die Kriterien Dia=.2
und len>=4.1
werden jedoch nur in Zeile 7 erfüllt.
Liest einen Wert aus der Zeile, die mithilfe der Funktion GoExcel.FindRow
gefunden wurde.
Syntax
GoExcel.CurrentRowValue("column name")
”column name”
Spaltentitel als Zellenwert zum Abrufen aus der aktuellen Zeile
Gibt Folgendes zurück
Zellenwert aus der Spalte der aktuellen Zeile, die zuvor mithilfe der Funktion GoExcel.FindRow
gefunden wurde.
Fehler
Gibt eine Fehlermeldung aus, wenn die Spalte nicht gefunden werden konnte.
Beispiel
i = GoExcel.FindRow("iLogic_SCHS.xls", "Sheet1", "thread_diameter", "=", Screw_Size, "screw-length", ">=",
screw_length_required)
thread_diameter = GoExcel.CurrentRowValue("thread_diameter")
screw_length = GoExcel.CurrentRowValue("screw_length")
head_diameter = GoExcel.CurrentRowValue("head_diameter")
head_thickness = GoExcel.CurrentRowValue("head_thickness")
socket_size = GoExcel.CurrentRowValue("socket_size")
thread_pitch = GoExcel.CurrentRowValue("thread_pitch")
Liest oder schreibt Werte in die Zellen eines Arbeitsblatts.
Syntax
GoExcel.CellValue("filename", "sheetname", "cellnumber")
”filename”
Informationen dazu finden Sie im Abschnitt zum Angeben einer Excel-Datei.
”sheetname”
Name des Arbeitsblatts im Excel-Dokument, das die Zielzelle enthält. Das Arbeitsblatt kann ein beliebiges, bereits vorhandenes Arbeitsblatt sein.
”cell number”
Die Zelladresse, die gelesen oder in die geschrieben werden soll (z. B. A7). Im Arbeitsblatt haben Sie auch die Möglichkeit, einen benannten Bereich anzugeben.
Gibt Folgendes zurück
Fehler
Excel-Tabellenformatanforderungen
Der Zellwert kann aus einem Text oder einer Zahl bestehen.
Beispiele
Ein eingebettetes Arbeitsblatt lesen:
head_rad = GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1","A1")
In ein eingebettetes Arbeitsblatt schreiben:
GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1", "A1")= head_rad
Ein externes Arbeitsblatt lesen:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "A5")
message =GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "B5")
In ein externes Arbeitsblatt schreiben:
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A6") = "Hello World"
GoExcel.Save
GoExcel.Save
erforderlich:Liest oder schreibt in eine Zelle mit einer bestimmten Zelladresse in einem Arbeitsblatt nach Verwendung der Funktion GoExcel.CellValue
oder GoExcel.Open
. Diese Funktion verwendet die Datei und das Arbeitsblatt, die zuvor geöffnet wurden.
Syntax
GoExcel.CurrentCellValue("cellnumber")
GoExcel.CellValue("cellnumber")
”cellnumber”
Zelladresse oder der benannte Bereich eines Zellwerts, die im aktuellen Arbeitsblatt gelesen oder in dieses geschrieben werden sollen.
Gibt Folgendes zurück
Der Zellwert der Zelle mit der angegebenen Zellennummer
Fehler
Beispiele
Mehrere Zellen in einem Arbeitsblatt lesen:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1")
head_thick = GoExcel.CellValue("B1")
pin_length = GoExcel.CellValue("C1")
shaft_rad = GoExcel.CellValue("D1")
In mehrere Zellen in einer Tabelle schreiben:
GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1") = head_rad
GoExcel.CellValue("B1") = head_thick
GoExcel.CellValue("C1") = pin_length
GoExcel.CellValue("D1") = shaft_rad
GoExcel.Save
Funktioniert wie die Funktion CellValue
. Geben Sie anstelle einer Zelladresse einen benannten Bereich in der definierten Excel-Arbeitsmappe an. Der Name sollte bereits in der Arbeitsmappe enthalten sein, und der Bereich darf nicht mehr als eine Zelle umfassen. Sie können auf die benannten Bereiche eines Arbeitsblatts zugreifen, indem Sie anstelle einer Zelladresse die standardmäßige Syntax CellValue verwenden.
Verwenden Sie GoExcel.CellValue
oder GoExcel.Open
, um die Excel-Datei zu öffnen, bevor Sie NamedRangeValue
in einer Regel nutzen.
Syntax
GoExcel.NamedRangeValue("PinLength")
Öffnet die angegebenen Excel-Tabelle und aktiviert (optional) ein benanntes Arbeitsblatt. Anschließend können Sie mit Funktionen wie GoExcel.FindRow
und GoExcel.CellValue
die enthaltenen Informationen extrahieren oder das Arbeitsblatt ändern.
Syntax
GoExcel.Open("filename", “sheetname”)
”filename”
Informationen dazu finden Sie im Abschnitt zum Angeben einer Excel-Datei.
”sheetname”
Name eines Excel-Arbeitsblatts, das aktiviert werden soll: Das Arbeitsblatt kann ein beliebiges, bereits vorhandenes Arbeitsblatt sein.
Gibt Folgendes zurück
NV
Fehler
Excel-Datei konnte nicht gefunden werden.
Beispiele
Wenn kein Name angegeben wird, wird der Name Blatt1 vergeben.
GoExcel.Open("Spreadsheet.xls")
Sie können auch ein zusätzliches Arbeitsblatt angeben.
GoExcel.Open("Spreadsheet.xls", "MyOtherSheet")
Speichert das aktuelle Excel-Dokument. Verwenden Sie diese Funktion, wenn Sie Zellen mit den Funktionen GoExcel.CellValue
oder GoExcel.CurrentCellValue
geändert haben.
Gibt Folgendes zurück
NV
Fehler
NV
Beispiel
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!"
GoExcel.CellValue("A2") = 5.42
GoExcel.Save
Diese Funktion dient zwei Zwecken:
Lesen von Excel-Tabellen
Sie können die Werte in Zellen lesen, die in einem senkrecht ausgerichteten Bereich enthalten sind. Mit der Funktion werden die Werte von oben nach unten beginnend in der ersten Zelle bis zum Wert in der zweiten Zelle gelesen, die in der Funktion angegeben wurde:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "A10")
Wenn die zweite Zelladresse aus einer leeren Zeichenfolge besteht (""), werden die Zellwerte bis zur nächsten leeren Zelle gelesen:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "")
Sie können die Werte in Zellen lesen, die in einem horizontal ausgerichteten Bereich enthalten sind.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1")
Wenn auf das Arbeitsblatt zuvor innerhalb einer Regel verwiesen wurde, müssen der Dateiname und der Name des Arbeitsblatts nicht mehr angegeben werden:
Multivalue.List("parameter") = GoExcel.CellValues("B2", "G2")
Schreiben in Excel-Tabellen
Werte können in Zellen in einem senkrecht ausgerichteten Bereich geschrieben werden. Mit der Funktion werden die Werte von oben nach unten beginnend in der ersten Zelle bis zur zweiten Zelle geschrieben, die in der Funktion angegeben wurde:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = Multivalue.List("parameter")
Werte können in Zellen in einem senkrecht ausgerichteten Bereich geschrieben werden. Wenn die zweite Zelladresse aus einer leeren Zeichenfolge besteht (""), wird von iLogic die Anzahl an Zellen verwendet, die erforderlich ist, um alle Werte der Multivalue-Liste einzutragen:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "") = Multivalue.List("parameter")
Werte können in Zellen in einem horizontal ausgerichteten Bereich geschrieben werden.
GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1") = Multivalue.List("parameter")
Wenn auf das Arbeitsblatt zuvor innerhalb einer Regel verwiesen wurde, müssen der Dateiname und der Name des Arbeitsblatts nicht mehr angegeben werden:
GoExcel.CellValues("B2", "G2") = Multivalue.List("parameter")
Schließt die aktuelle Excel-Tabelle.
Wird vor der Funktion GoExcel.FindRow
verwendet, um die Anzahl der Zeilen in der Tabelle anzugeben, in der die Spaltennamen enthalten sind. Die Standardzeilenanzahl ist 1. Ändern Sie diesen Wert, wenn über der Zeile mit dem Spaltennamen noch weitere Zeilen vorhanden sind.
Beispiel
GoExcel.TitleRow = 2
Wird vor der Funktion GoExcel.FindRow
verwendet, um die Nummer der ersten Zeile in der Tabelle anzugeben, die Daten enthält. Die vorgabemäßige Zeilenanzahl ist 2.
Syntax
GoExcel.FindRowStart = <row>
<row>
Die erste Zeile, in der Daten angezeigt werden
Beispiele
Der Vorgabewert von 2 gibt an, dass die erste Zeile, die Daten enthält, Zeile 2 ist und eine Zeile nach der Titelzeile folgt:
GoExcel.FindRowStart = 2
Wenn Sie zwei Titelzeilen haben, fügen Sie der Regel die folgende Anweisung vor der Stelle hinzu, an der die Anweisung mit GoExcel.FindRow
aufgeführt wird:
GoExcel.FindRowStart = 3
Bietet einen Zugriff auf die Option Quelle ändern von einer iLogic-Regel aus.
Diese Funktion ersetzt eine Excel-Tabelle, die aktuell das Modell festlegt, durch eine andere Tabelle. Die Bemaßungen des Modells werden dann durch die Werte in der neuen Tabelle festgelegt.
Syntax
changeOK = GoExcel.ChangeSourceOfLinked(partialOldName, newName)
partialOldName
Teil des Tabellennamens, der ersetzt werden soll.
partialOldName
kann eine leere Zeichenfolge ""
sein. In diesem Fall wird die erste verknüpfte Excel-Datei verwendet. Häufig liegt für ein Bauteil oder eine Baugruppe nur eine Excel-Datei vor.
newName
Der vollständige neue Tabellenname (absoluter oder relativer Dateiname)
Beispiel
If size = "small" Then
changeOK = GoExcel.ChangeSourceOfLinked("pipe"," smallpipe.xlsx")
ElseIf size = "medium" Then
changeOK = GoExcel.ChangeSourceOfLinked("pipe", "mediumpipe.xlsx")
ElseIf size = "large" Then
changeOK = GoExcel.ChangeSourceOfLinked("pipe", "largepipe.xlsx")
End If
Wird in Verbindung mit der Funktion GoExcel.FindRow
verwendet, um nach einem Wert in einem bestimmten Bereich statt nach einem genauen Wert zu suchen. Der vorgegebene Toleranzwert beträgt "0.0000001" und ist unabhängig von den Dokumenteinheiten.
Syntax
GoExcel.Tolerance = <tolerance>
Legen Sie einen höheren Toleranzwert fest, um den Bereich zulässiger Werte zu erweitern.
Beispiel
Verwenden Sie die Anweisung, um folgende Suche auszuführen:
GoExcel.Tolerance = 0.001
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", "=", 2.3)
Die Anweisung ist vergleichbar mit folgendem Suchvorgang ohne die Angabe eines Toleranzwerts:
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", ">=", 2.299, "length","<=", 2.301)
Verhindert die Anzeige der Dialogfelder mit Eingabeaufforderung.
Syntax
GoExcel.DisplayAlerts = True
GoExcel.DisplayAlerts = False
True
Zeigt die Microsoft® Excel-Eingabeaufforderungen an (Vorgabeeinstellung).
False
Die Excel-Eingabeaufforderungen werden nicht angezeigt.
Greift auf das Excel-Anwendungsobjekt zu. Verwenden Sie nur dann diese Funktion, wenn Sie bereits Erfahrung mit Excel-COM-Schnittstelle haben. Rufen Sie vor der Verwendung dieser Funktion in einer Regel eine andere GoExcel-Funktion auf, um die Anwendung zu starten.
Syntax
excelApp = GoExcel.Application