Funktionen für Excel-Datenverknüpfungen - Referenz (iLogic)

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.

Angeben der Excel-Datei

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.

Anmerkung: Fügen Sie nach dem Zeichen : 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 Verknüpfen im Dialogfeld Parameter.

GoExcel.FindRow

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.

GoExcel.CurrentRowValue

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")

GoExcel.CellValue

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
Anmerkung: Zum Speichern der Änderungen in einem Arbeitsblatt ist die Funktion GoExcel.Save erforderlich:

GoExcel.CurrentCellValue, GoExcel.CellValue

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

GoExcel.NameRangeValue

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")

GoExcel.Open

Ö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")

GoExcel.Save

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

GoExcel.CellValues

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")

GoExcel.Close

Schließt die aktuelle Excel-Tabelle.

GoExcel.TitleRow

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

GoExcel.FindRowStart

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

GoExcel.ChangeSourceOfLinked

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.

Anmerkung: Diese Funktion können Sie auch manuell über das Kontextmenü verknüpfter Excel-Tabellen ausführen.

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

GoExcel.Tolerance

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)

GoExcel.DisplayAlerts

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.

GoExcel.Application

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