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 bei eingebetteten Arbeitsblättern die Syntax 3rd Party:Embedding#.
Verwenden Sie bei verknüpften Arbeitsblättern die Syntax 3rd Party:LinkedName.xls. 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 des Dialogfelds Parameter. Ändern Sie nicht den Namen der eingebetteten Tabelle, der von Inventor vorgegeben wurde (z. B. Embedding 1). Bei GoExcel ist der ursprüngliche Name erforderlich.
Um eine Datei zu verknüpfen, klicken Sie auf Registerkarte Verwalten Gruppe Einfügen Objekt einfügen oder verwenden 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.
Rückgabewerte
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 als 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 mithilfe der Funktion GoExcel.FindRow den Wert in einer gefundenen Zeile.
Syntax
GoExcel.CurrentRowValue("column name")
column name
Spaltentitel als Zellenwert zum Abrufen aus der aktuellen Zeile
Rückgabewerte
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.
Rückgabewerte
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
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") (ohne Angabe eines Datei- oder Arbeitsblattnamens)
cellnumber
Zelladresse oder der benannte Bereich eines Zellwerts, die im aktuellen Arbeitsblatt gelesen oder in dieses geschrieben werden sollen.
Rückgabewerte
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
Diese Funktion erfüllt den gleichen Zweck wie 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 zum Öffnen einer Excel-Datei die Funktionen GoExcel.CellValue oder GoExcel.Open, bevor Sie NamedRangeValue in eine Regel integrieren.
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.
Rückgabewerte
–
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 Zellen mithilfe der Funktion GoExcel.CellValue oder GoExcel.CurrentCellValue geändert haben.
Rückgabewerte
–
Fehler
–
Beispiel
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!" GoExcel.CellValue("A2") = 5.42 GoExcel.Save
Diese Funktion dient zwei Zwecken:
Excel-Tabelle lesen
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")
In Excel-Tabelle schreiben
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 Standardzeilennummer ist 2.
Syntax
GoExcel.FindRowStart = <row>
<row>
Die erste Zeile, in der Daten angezeigt werden
Beispiele
Der Standardwert 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 die folgende Anweisung der Regel 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