iLogic ofrece funciones de regla para leer y escribir en documentos de hoja de cálculo de Microsoft® Excel. Para acceder a las funciones de vínculos de datos de Excel, expanda el nodo Vínculos de datos de Excel en la ficha Sistema del área Fragmentos del cuadro de diálogo Editar regla de iLogic.
Hay dos tipos de funciones de vínculos de datos de Excel disponibles:
Para leer y escribir a otros formatos de archivo, añada un código VB.NET personalizado a las reglas.
Utilice la función especial ThisBOM.Export para exportar una lista de materiales de ensamblaje a Microsoft® Excel y otros formatos.
Los datos de Microsoft® Excel se pueden incrustar o vincular en un documento de Inventor o mantenerlos como un archivo externo. Las funciones requieren bien un nombre de archivo o bien una especificación de un archivo de Excel vinculado o incrustado.
Para un nombre de archivo, puede especificar una ruta relativa o una absoluta. Sin embargo, el uso de rutas absolutas puede dificultar el envío del modelo a otro usuario en un equipo diferente. Si no se especifica una ruta, iLogic da por hecho que el documento de Excel está en la misma carpeta que el documento de Inventor actual. Una ruta relativa se interpretará como relativa a la carpeta que contiene el documento de Inventor.
iLogic también busca el archivo en la ruta del espacio de trabajo del proyecto. Puede utilizar una ruta relativa en la ruta del espacio de trabajo del proyecto.
Admite las extensiones de nombre de archivo .xls, .xlsx, .xlsm y .xlsb.
También puede especificar una hoja de cálculo vinculada o incrustada en lugar de un nombre de archivo. Utilice la sintaxis Otros fabricantes:Número de incrustación para las hojas de cálculo incrustadas.
Utilice la sintaxis Otros fabricantes:NombreVinculado.xls para las hojas de cálculo vinculadas. Especifique el nombre que se muestra en el árbol de modelo de Inventor, en Otros fabricantes.
Si utiliza una tabla incrustada, incrústela mediante la opción Vincular en el cuadro de diálogo Parámetros. No cambie el nombre por defecto de la tabla incrustada asignado por Inventor (por ejemplo, Incrustando 1). GoExcel requiere el nombre original.
Para vincular un archivo, haga clic en la ficha Administrar panel Insertar
Insertar objeto o utilice Vincular en el cuadro de diálogo Parámetros.
Busca una fila basándose en uno o varios criterios de valor de las columnas.
Sintaxis
GoExcel.FindRow("nombre de archivo", "nombre de hoja", "título de la primera columna", "operador", valor que se debe buscar, "título de la segunda columna", "operador", valor que se debe buscar, "título de la tercera columna",...)
"nombre de archivo"
Especifica el archivo de datos.
”nombre de hoja”
La hoja del documento de Excel que contiene la tabla en que se va a realizar la búsqueda. La hoja puede ser cualquiera de las existentes.
"título de la primera columna"
El título de la primera columna de la tabla en que se va a realizar la búsqueda. Los títulos de columna normalmente se colocan en la fila 1 y comienzan en la columna A.
”operador”
Los valores posibles son:
valor que se debe buscar
Un texto o valor numérico que se puede especificar con un valor explícito, un parámetro o una variable local.
"título de la segunda columna"
El título de la segunda columna de la tabla en que se va a realizar la búsqueda.
”operador”
<= , >= , o =
valor que se debe buscar
"título de la tercera columna"
Buscar una fila en función de varios criterios.
Devuelve
El número de fila (un entero) que coincide con los criterios de búsqueda. El valor es -1 si no encuentra ninguna fila que coincida.
Posibles errores
Requisitos de la tabla Excel
Ejemplos
En estos ejemplos se aplica el valor de la variable de parámetro i al número de la fila de la tabla. Dia es igual a 0,2 y Len es mayor que o igual a 4,1. El primer ejemplo hace referencia a una hoja de cálculo externa, y el segundo a una hoja de cálculo incrustada.
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)
En estos ejemplos, las filas 5, 6 y 7 cumplen la primera condición: Dia=0,2. Sin embargo, solo la fila 7 cumple ambos criterios: Dia=0,2 y len>=4,1.
Lee un valor de la fila encontrado con la función GoExcel.FindRow.
Sintaxis
GoExcel.CurrentRowValue("nombre de columna")
”nombre de columna”
Nombre de título de columna para el valor de celda que se ha de recuperar de la fila actual.
Devuelve
El valor de celda que posee la columna de la fila actual, que se ha encontrado previamente con la función GoExcel.FindRow.
Errores
Devuelve un mensaje de error si no encuentra la columna.
Ejemplo
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")
Lee o escribe valores en las celdas de la hoja de cálculo.
Sintaxis
GoExcel.CellValue("nombre de archivo", "nombre de hoja", "número de celda")
"nombre de archivo"
Consulte Especificar el archivo de Excel.
"nombre de hoja"
Nombre de la hoja del documento de Excel que contiene la celda de destino. La hoja puede ser cualquiera de las existentes.
"número de celda"
Dirección de la celda en la que leer o escribir (como “ A7 ”). También puede especificar un rango con nombre del ámbito de la hoja de trabajo.
Devuelve
Errores
Requisitos de formato de la tabla Excel
Los valores de celda pueden ser numéricos o de texto.
Ejemplos
Leer una hoja de cálculo incrustada:
head_rad = GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1","A1")
Escribir en una hoja de cálculo incrustada:
GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1", "A1")= head_rad
Leer una hoja de cálculo externa:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "A5") message =GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "B5")
Escribir en una hoja de cálculo externa:
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A6") = "Hello World" GoExcel.Save
Lee o escribe en una dirección de celda específica de una hoja de cálculo tras utilizar las funciones GoExcel.CellValue o GoExcel.Open. Esta función utiliza el archivo y la hoja que se han abierto previamente.
Sintaxis
GoExcel.CurrentCellValue("número de celda")
GoExcel.CellValue("número de celda") (sin especificar un nombre de archivo y un nombre de hoja)
"número de celda"
Dirección de celda o rango con nombre del valor de la celda para leer o escribir en la hoja de cálculo actual.
Devuelve
El valor de celda del número de celda especificado.
Errores
Ejemplos
Leer una serie de celdas de una sola hoja de cálculo:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1") head_thick = GoExcel.CellValue("B1") pin_length = GoExcel.CellValue("C1") shaft_rad = GoExcel.CellValue("D1")
Escribir en una serie de celdas en un documento de hoja de cálculo:
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
Funciona como la función CellValue En lugar de una dirección de celda, especifique un rango con nombre definido en el libro de Excel. El nombre debe ser un nombre del libro y el rango debe estar restringido a una única celda. Puede acceder a los rangos con nombre del ámbito de la hoja de trabajo mediante la sintaxis normalizada de CellValue, utilizando el nombre en lugar de la dirección de la celda.
Utilice GoExcel.CellValue o GoExcel.Open para abrir el archivo de Excel antes de utilizar NamedRangeValue en una regla.
Sintaxis
GoExcel.NamedRangeValue("LongitudPasador")
Abre la hoja de cálculo de Excel especificada y, opcionalmente, activa una hoja de trabajo con nombre. A continuación, puede utilizar funciones como GoExcel.FindRow y GoExcel.CellValue para modificar la hoja de cálculo o extraer información de ella.
Sintaxis
GoExcel.Open("nombre de archivo", “nombre de hoja”)
”nombre de archivo”
Consulte Especificar el archivo de Excel.
”nombre de hoja”
Nombre de la hoja del documento de Excel que desea activar. La hoja puede ser cualquiera de las existentes.
Devuelve
N/D
Errores
No se encuentra el archivo de Excel.
Ejemplos
Cuando no se especifica un nombre de hoja, se utiliza "Hoja 1".
GoExcel.Open("Spreadsheet.xls")
También se puede especificar otra hoja de trabajo.
GoExcel.Open("Spreadsheet.xls", "MyOtherSheet")
Guarda el documento de Excel actual. Use esta función si ha modificado celdas con las funciones GoExcel.CellValue o GoExcel.CurrentCellValue.
Devuelve
N/D
Errores
N/D
Ejemplo
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!" GoExcel.CellValue("A2") = 5.42 GoExcel.Save
Esta función cumple dos fines:
Leer desde hojas de cálculo de Excel
Puede leer desde un rango de celdas orientado verticalmente. La función lee los valores empezando por la primera celda y continúa hacia abajo hasta que llega a la segunda celda especificada en la función:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "A10")
Si una cadena vacía ("") reemplaza a la segunda dirección de celda, puede comenzar a leer por la primera dirección de celda y continuar hacia abajo hasta que encuentra una celda vacía:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "")
Puede leer desde un rango de celdas orientado horizontalmente:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1")
Si, previamente, se ha hecho referencia a la hoja de cálculo de la regla, también puede omitir el nombre de archivo y el nombre de hoja:
Multivalue.List("parameter") = GoExcel.CellValues("B2", "G2")
Escribir en hojas de cálculo de Excel
Puede escribir valores en un rango de celdas orientado verticalmente. La función escribe los valores empezando por la primera celda y continúa hacia abajo hasta que llega a la segunda celda especificada en la función:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = Multivalue.List("parameter")
Puede escribir valores en un rango de celdas orientado verticalmente. Si una cadena vacía ("") reemplaza a la segunda celda, iLogic utiliza tantas celdas como sea necesario para incluir todos los miembros de la lista de varios valores:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "") = Multivalue.List("parameter")
Puede escribir valores en un rango de celdas orientado horizontalmente:
GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1") = Multivalue.List("parameter")
Si, previamente, se ha hecho referencia a la hoja de cálculo en la regla, también puede omitir el nombre de archivo y el nombre de hoja:
GoExcel.CellValues("B2", "G2") = Multivalue.List("parameter")
Cierra la hoja de cálculo de Excel actual.
Se utiliza antes de GoExcel.FindRow para especificar el número de la fila de la hoja de cálculo que contiene los nombres de las columnas. El número de fila por defecto es 1. Cambie este valor si dispone de filas adicionales sobre la fila con el nombre de columna.
Ejemplo
GoExcel.TitleRow = 2
Se utiliza antes de la función GoExcel.FindRow para especificar el número de la primera fila de la hoja de cálculo que contiene datos. El número de fila por defecto es 2.
Sintaxis
GoExcel.FindRowStart = <fila>
<fila>
La fila en la que comienzan los datos.
Ejemplos
El valor por defecto "2" indica que los datos comienzan en la fila 2, que sigue a una fila de título:
GoExcel.FindRowStart = 2
Si dispone de dos filas de título, añada la siguiente instrucción a la regla antes de la instrucción que contiene GoExcel.FindRow:
GoExcel.FindRowStart = 3
Proporciona acceso a la operación Cambiar origen desde las reglas de iLogic.
Esta función reemplaza la hoja de cálculo de Excel que está controlando actualmente el modelo por otra hoja de cálculo. Así, los valores incluidos en la nueva hoja de cálculo controlan las cotas del modelo.
Sintaxis
changeOK = GoExcel.ChangeSourceOfLinked(parteNombreAnterior, nuevoNombre)
parteNombreAnterior
Parte del nombre de la hoja de cálculo que desea reemplazar.
parteNombreAnterior puede ser una cadena vacía "" para que coincida con el primer archivo de Excel vinculado. A menudo, una pieza o un ensamblaje solo tienen un archivo de Excel.
nuevoNombre
El nuevo nombre de la hoja de cálculo completo, que puede ser un nombre de archivo relativo o absoluto.
Ejemplo
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
Se utiliza con la función GoExcel.FindRow para buscar un valor dentro de un rango en lugar de un valor exacto. La tolerancia por defecto es de 0.0000001 y no depende de las unidades del documento.
Sintaxis
GoExcel.Tolerance = <tolerancia>
Establezca una tolerancia mayor para expandir el intervalo de valores válidos.
Ejemplo
La instrucción se utiliza para buscar de la siguiente forma:
GoExcel.Tolerance = 0.001 i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", "=", 2.3)
La instrucción será equivalente a la siguiente búsqueda sin tolerancia:
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", ">=", 2.299, "length","<=", 2.301)
Impide que se muestren los cuadros de diálogo de mensaje de Excel.
Sintaxis
GoExcel.DisplayAlerts = True
GoExcel.DisplayAlerts = False
True
Mostrar los mensajes de Microsoft® Excel (por defecto).
False
No mostrar los mensajes de Excel.
Accede al objeto de la aplicación Excel. Utilice esta función solo si tiene experiencia con la interfaz COM de Excel . Antes de utilizar esta función en una regla, ejecute otra función GoExcel para iniciar la aplicación.
Sintaxis
excelApp = GoExcel.Application