Fonction de liaisons de données Excel dans la référence iLogic

iLogic fournit des fonctions de règles pour la lecture et l'écriture dans des documents Microsoft Excel®. Pour accéder à la fonction de liaisons de données Excel, développez le noeud Liaisons de données Excel sous l'onglet Système de la zone Extraits de code.

Deux types de fonctions de liaisons de données Excel sont disponibles :

Pour lire et écrire vers d'autres formats de fichier, ajouter un code VB.NET personnalisé à vos règles.

Utilisez la fonction dédiée ThisBOM.Export pour exporter une nomenclature d'ensemble vers Microsoft® Excel et d'autres formats.

Spécifier le fichier Excel

Vous pouvez incorporer des données Microsoft® Excel ou les lier dans un document Autodesk Inventor, ou encore les conserver dans un fichier externe. Les fonctions nécessitent soit un nom de fichier soit une spécification de fichier Excel lié ou incorporé.

Pour un nom de fichier, vous pouvez spécifier un chemin relatif ou absolu. Cependant, les chemins absolus peuvent rendre difficile l'envoi du modèle vers un autre utilisateur travaillant sur un autre ordinateur. Si aucun chemin n'est spécifié, iLogic suppose que le document Excel se trouve dans le même dossier que le document Inventor actif. Un chemin d'accès relatif est interprété comme un chemin relatif vers le dossier contenant le document Inventor.

iLogic recherche également le fichier dans le chemin de l'espace de travail du projet. Vous pouvez utiliser un chemin relatif dans l'espace de travail du projet.

Les extensions de nom de fichier pris en charge sont .xls, .xlsx, .xlsm et .xlsb.

Vous pouvez également spécifier une feuille de calcul liée ou incorporée au lieu d'un nom de fichier. Utilisez la syntaxe 3rd Party:Embedding# pour obtenir des feuilles de calcul incorporées.

Utilisez la syntaxe 3rd Party:LinkedName.xls pour obtenir des feuilles de calcul liées. Spécifiez le nom qui s'affiche dans l'arborescence du modèle Autodesk Inventor, sous Tiers.

Si vous utilisez une table incorporée, incorporez-la à l'aide de l'option Lier dans la boîte de dialogue Paramètres. Ne modifiez pas le nom d'origine de la table incorporée, défini par Autodesk Inventor (par exemple, Incorporation de 1). GoExcel requiert le nom d'origine.

Remarque : N'ajoutez pas d'espace après le caractère : dans la syntaxe 3rd Party:Name.

Pour lier un fichier, cliquez sur l'onglet Gérer le groupe de fonctions Insérer Insérer objet ou utilisez l'option Lier dans la boîte de dialogue Paramètres.

GoExcel.FindRow

Permet de rechercher une ligne en fonction d'un ou plusieurs critères de valeur de la colonne.

Syntaxe

GoExcel.FindRow("filename", "sheetname", "first column title", "operator", valeur à rechercher, "second column title","operator", valeur à rechercher, "third column title",...)

"filename"

Indique le fichier de données.

"sheetname"

Feuille de calcul du document Excel contenant le tableau pour la recherche. Il peut s'agir de n'importe quelle feuille existante.

"first column title"

Titre de la première colonne du tableau pour la recherche. Les titres de colonne sont généralement placés dans la ligne 1, en commençant par la colonne A.

"operator"

Les valeurs possibles sont les suivantes :

valeur à rechercher

Valeur numérique ou textuelle qui peut être définie avec une valeur explicite, un paramètre ou une variable locale.

"second column title"

Titre de la deuxième colonne dans le tableau pour la recherche.

"operator"

<= , >= ou =

valeur à rechercher

"third column title"

Rechercher une ligne basée sur plusieurs critères.

Retours

Numéro de ligne (un entier) qui correspond aux critères de recherche. La valeur est -1 si une telle ligne est introuvable.

Erreurs possibles

Tableau Excel requis

Exemples

Ces exemples définissent la valeur de la variable de paramètre i sur le numéro de la ligne de la table. Dia est égal à 0.2 et Len est supérieur ou égal à 4.1. Le premier exemple se rapporte à une feuille de calcul externe et le second exemple à une feuille de calcul incorporée.

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)

Dans ces exemples, les lignes 5, 6 et 7 correspondent à la première condition Dia=.2. Toutefois, seule la ligne 7 respecte les critères Dia=.2 et len>=4.1.

GoExcel.CurrentRowValue

Lit une valeur à partir de la ligne trouvée à l'aide de la fonction GoExcel.FindRow.

Syntaxe

GoExcel.CurrentRowValue("column name")

"column name"

Nom du titre de la colonne pour la valeur de la cellule tirée de la ligne actuelle.

Retours

Valeur de la cellule tirée de la colonne de la ligne actuelle, précédemment trouvée avec la fonction GoExcel.FindRow.

Erreurs

Renvoie un message d'erreur si la colonne est introuvable.

Exemple

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

Lit ou écrit les valeurs dans les cellules de la feuille de calcul.

Syntaxe

GoExcel.CellValue("filename", "sheetname", "cellnumber")

"filename"

Reportez-vous à la section Spécifier le fichier Excel.

"sheetname"

Nom de la feuille du document Excel contenant la cellule cible. Il peut s'agir de n'importe quelle feuille existante.

"cell number"

Adresse de la cellule pour la lecture ou l'écriture (exemple : “A7”). Vous pouvez également spécifier une plage de cellules nommée dans la feuille de calcul.

Retours

Erreurs

Format de tableau Excel requis

Les valeurs de cellule peuvent être numériques ou textuelles.

Exemples

Pour lire dans une feuille de calcul incorporée :

head_rad = GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1","A1")

Pour écrire dans une feuille de calcul incorporée :

GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1", "A1")= head_rad

Pour lire dans une feuille de calcul externe :

head_rad = GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "A5")
message =GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "B5")

Pour écrire dans une feuille de calcul externe :

GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A6") = "Hello World"
GoExcel.Save
Remarque : Requiert GoExcel.Save pour enregistrer les modifications apportées à la feuille de calcul :

GoExcel.CurrentCellValue, GoExcel.CellValue

Lit ou écrit dans une adresse de cellule spécifique dans une feuille de calcul créée avec la fonction GoExcel.CellValue ou GoExcel.Open. Cette fonction utilise le fichier et la feuille ouverts précédemment.

Syntaxe

GoExcel.CurrentCellValue("cellnumber")

GoExcel.CellValue("cellnumber") (sans spécifier un nom de fichier et un nom de feuille)

"cellnumber"

Adresse de cellule ou plage nommée de la valeur de cellule tirée de la feuille de calcul actuelle dans laquelle lire ou écrire.

Retours

La valeur de la cellule à partir du numéro de cellule spécifié.

Erreurs

Exemples

Pour lire une série de cellules à partir d'une feuille de calcul unique :

head_rad = GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1")
head_thick = GoExcel.CellValue("B1")
pin_length = GoExcel.CellValue("C1")
shaft_rad = GoExcel.CellValue("D1")

Pour écrire une série de cellules dans un ensemble de feuilles de calcul :

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

Fonctionne comme la fonction CellValue. Au lieu d'une adresse de cellule, indiquez une plage nommée définie dans le classeur Excel. Le nom doit être un nom contenu dans le classeur et la plage doit être limitée à une seule cellule. Vous pouvez accéder aux plages nommées de la feuille de calcul à l'aide de la syntaxe CellValue standard, en spécifiant le nom au lieu d'une adresse de cellule.

Utilisez GoExcel.CellValue ou GoExcel.Open pour ouvrir le fichier Excel avant d'utiliser NamedRangeValuedans une règle.

Syntaxe

GoExcel.NamedRangeValue("PinLength")

GoExcel.Open

Ouvre la feuille de calcul Excel spécifiée et active, si nécessaire, une feuille de calcul nommée. Vous pouvez ensuite utiliser des fonctions telles que GoExcel.FindRow et GoExcel.CellValue pour extraire des informations ou modifier la feuille de calcul.

Syntaxe

GoExcel.Open("filename", "sheetname")

"filename"

Reportez-vous à la section Spécifier le fichier Excel.

"sheetname"

Nom de la feuille dans le document Excel à activer. Il peut s'agir de n'importe quelle feuille existante.

Retours

N/D

Erreurs

Fichier Excel introuvable.

Exemples

Si aucun nom de feuille n'est spécifié, "Feuille1" s'affiche par défaut.

GoExcel.Open("Spreadsheet.xls")

Une feuille de calcul différente peut également être spécifiée.

GoExcel.Open("Spreadsheet.xls", "MyOtherSheet")

GoExcel.Save

Enregistre le document Excel actuel. Utilisez cette fonction si vous avez modifié des cellules avec la fonction GoExcel.CellValue ou GoExcel.CurrentCellValue.

Retours

N/D

Erreurs

N/D

Exemple

GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!"
GoExcel.CellValue("A2") = 5.42
GoExcel.Save

GoExcel.CellValues

Cette fonction sert à deux usages :

Lire à partir d'une feuille de calcul Excel

Vous pouvez lire dans une plage de cellules orientée verticalement. La fonction lit les valeurs en commençant par la première cellule et poursuit vers le bas jusqu'à atteindre la deuxième cellule spécifiée dans la fonction :

Multivalue.List("parameter") =  GoExcel.CellValues("filename.xls", "Sheet1", "A1", "A10")

Si une chaîne vide ("") remplace la deuxième d'adresse de cellule, commencez la lecture à partir de la première adresse de cellule et poursuivez vers le bas jusqu'à rencontrer une cellule vide :

Multivalue.List("parameter") =  GoExcel.CellValues("filename.xls", "Sheet1", "A1", "")

Vous pouvez lire dans une plage de cellules orientée horizontalement :

Multivalue.List("parameter") =  GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1")

Si la feuille de calcul a déjà été référencée dans la règle, vous pouvez également omettre le nom de fichier et le nom de la feuille :

Multivalue.List("parameter") =  GoExcel.CellValues("B2", "G2")

Ecrire dans une feuille de calcul Excel

Vous pouvez écrire des valeurs dans une plage de cellules orientée verticalement. La fonction écrit les valeurs en commençant par la première cellule et poursuit vers le bas jusqu'à atteindre la deuxième cellule spécifiée dans la fonction :

GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = Multivalue.List("parameter")

Vous pouvez écrire des valeurs dans une plage de cellules orientée verticalement. Si une chaîne vide ("") remplace la deuxième d'adresse de cellule, iLogic utilise autant de cellules qu'il est nécessaire pour contenir tous les membres de la liste multivaleur :

GoExcel.CellValues("filename.xls", "Sheet1", "A2", "") = Multivalue.List("parameter")

Vous pouvez écrire des valeurs dans une plage de cellules orientée horizontalement :

GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1") = Multivalue.List("parameter")

Si la feuille de calcul a déjà été référencée dans la règle, vous pouvez également omettre le nom de fichier et le nom de la feuille :

GoExcel.CellValues("B2", "G2") = Multivalue.List("parameter")

GoExcel.Close

Ferme la feuille de calcul Excel.

GoExcel.TitleRow

Utilisée avant GoExcel.FindRow pour spécifier le numéro de la ligne de la feuille de calcul qui contient les noms de colonne. Le numéro de ligne par défaut est 1. Modifiez cette valeur si vous avez des lignes supplémentaires au-dessus de la ligne du nom de colonne.

Exemple

GoExcel.TitleRow = 2

GoExcel.FindRowStart

Utilisée avant la fonction GoExcel.FindRow pour spécifier le numéro de la première ligne de la feuille de calcul contenant des données. Le numéro de ligne par défaut est 2.

Syntaxe

GoExcel.FindRowStart = <row>

<row>

Ligne à laquelle les données commencent.

Exemples

La valeur par défaut 2 indique que les données débutent sur la ligne 2 et poursuivent sur la ligne de titre :

GoExcel.FindRowStart = 2

Si vous disposez de deux lignes de titre, ajoutez l'instruction suivante à la règle avant l'instruction contenant GoExcel.FindRow :

GoExcel.FindRowStart = 3

GoExcel.ChangeSourceOfLinked

Permet d'accéder depuis des règles iLogic à l'opération de changement de source.

Cette fonction remplace la feuille de calcul Excel contrôlant le modèle par une autre feuille de calcul. Les valeurs incluses dans la nouvelle feuille de calcul contrôlent ensuite les cotes du modèle.

Remarque : Cette fonction peut également être lancée manuellement à partir du menu contextuel des feuilles de calcul Excel liées.

Syntaxe

changeOK = GoExcel.ChangeSourceOfLinked(partialOldName, newName)

partialOldName

Partie du nom de la feuille de calcul à remplacer.

partialOldName peut être une chaîne vide "" pour correspondre au premier fichier Excel lié. Souvent, une pièce ou un ensemble ne possède qu'un seul fichier Excel.

newName

Nouveau nom entier de la feuille de calcul, qui peut être un nom de fichier absolu ou relatif.

Exemple

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

Utilisée avec la fonction GoExcel.FindRow pour rechercher une valeur dans une plage plutôt qu'une valeur exacte. La tolérance par défaut est 0.0000001 et ne dépend pas des unités du document.

Syntaxe

GoExcel.Tolerance = <tolerance>

Permet de définir une tolérance plus élevée pour augmenter la plage de valeurs autorisées.

Exemple

Vous utilisez l'instruction de recherche de la manière suivante :

GoExcel.Tolerance = 0.001
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", "=", 2.3)

L'instruction devient équivalente à la recherche suivante sans tolérance :

i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", ">=", 2.299, "length","<=", 2.301)

GoExcel.DisplayAlerts

Empêche l'affichage des boîtes de dialogue d'invite Excel.

Syntaxe

GoExcel.DisplayAlerts = True

GoExcel.DisplayAlerts = False

Vrai

Autorise l'affichage des invites Microsoft® Excel (par défaut).

Faux

Empêche l'affichage des invites Excel.

GoExcel.Application

Permet d'accéder à l'objet de l'application Excel. Utilisez cette option uniquement si vous connaissez l'interface COM d'Excel. Avant d'utiliser cette fonction dans une règle, appelez une autre fonction GoExcel pour initialiser l'application.

Syntaxe

excelApp = GoExcel.Application