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.
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.
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.
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 :
Permet de rechercher une ligne avec une valeur de colonne qui soit inférieure ou égale à la valeur spécifiée.
Permet de rechercher une ligne avec une valeur de colonne qui soit supérieure ou égale à la valeur spécifiée.
Permet de rechercher une ligne avec une valeur de colonne numérique ou textuelle qui soit égale à la valeur spécifiée.
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.
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")
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
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
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")
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")
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
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")
Ferme la feuille de calcul Excel.
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
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
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.
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
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)
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.
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