iLogic fornisce funzioni regola per la lettura e la scrittura in fogli di calcolo Microsoft® Excel. Per accedere alle funzioni Collegamenti dati di Excel, espandere il nodo Collegamenti dati di Excel nella scheda Sistema dell'area Frammenti in iLogic, finestra di dialogo Modifica regola.
Sono disponibili due tipi di funzioni collegamento dati Excel:
Per la lettura e la scrittura in altri formati di file, aggiungere codice VB.NET personalizzato alle regole.
Utilizzare la funzione ThisBOM.Export dedicata per esportare la distinta materiali di un assieme in Microsoft® Excel e altri formati.
È possibile incorporare dati di Microsoft® Excel, collegarli in un documento di Inventor o mantenerli come file esterno. Le funzioni richiedono un nome file o la specificazione di un file Excel collegato o incorporato.
In un nome file, è possibile specificare un percorso relativo o assoluto. Tuttavia, l'utilizzo di percorsi assoluti può rendere difficile l'invio del modello ad un altro utente su un altro computer. Se non viene specificato un percorso, iLogic presuppone che il documento Excel si trovi nella stessa cartella del documento di Inventor corrente. Un percorso relativo viene interpretato rispetto alla cartella contenente il documento di Inventor.
La ricerca del file viene eseguita anche nel percorso dell'area di lavoro del progetto. È possibile utilizzare un percorso relativo nel percorso dell'area di lavoro del progetto.
Le estensioni di nomi di file supportate sono .xls, .xlsx, .xlsm e .xlsb.
È inoltre possibile specificare un foglio di calcolo collegato o incorporato, anziché un nome di file. Utilizzare la sintassi 3rd Party:Embedding# per i fogli di calcolo incorporati.
Utilizzare la sintassi 3rd Party:LinkedName.xls per i fogli di calcolo collegati. Specificare il nome visualizzato nella struttura del modello di Inventor, in Altro produttore.
Se si utilizza una tabella incorporata, incorporarla utilizzando Collegamento nella finestra di dialogo Parametri. Non modificare il nome di default della tabella incorporata assegnato da Inventor (ad esempio, Elementi incorporati 1). GoExcel richiede il nome originale.
Per collegare un file, fare clic su scheda Gestione gruppo Inserisci
Inserisci oggetto, oppure utilizzare Collegamento nella finestra di dialogo Parametri.
Consente di cercare una riga sulla base di uno o più criteri di valore della colonna.
Sintassi
GoExcel.FindRow("filename", "sheetname", "first column title", "operator", value to look for, "second column title", "operator", value to look for, "third column title",...)
"filename"
Specifica il file di dati.
"sheetname"
Foglio del documento di Excel contenente la tabella in cui eseguire la ricerca. Il foglio può essere qualsiasi foglio esistente.
"first column title"
Titolo della prima colonna nella tabella in cui eseguire la ricerca. I titoli delle colonne in genere vengono posizionati nella riga 1, a partire dalla colonna A.
"operator"
I valori possibili sono:
value to look for
Il valore di testo o numerico può essere specificato con un valore esplicito, un parametro o una variabile locale.
"second column title"
Titolo della seconda colonna nella tabella in cui eseguire la ricerca.
"operator"
<=, > = o =
value to look for
"third column title"
Individua una riga in base a più criteri.
Valori restituiti
Il numero di riga (un numero intero) che corrisponde ai criteri di ricerca. Il valore è -1 se non viene trovata una riga corrispondente.
Possibili errori
Requisiti della tabella di Excel
Esempi
Questi esempi impostano il valore della variabile parametro i sul numero di riga della tabella. Dia è uguale a 0,2 e Len è maggiore o uguale a 4,1. Il primo esempio fa riferimento ad un foglio di calcolo esterno, il secondo ad un foglio di calcolo incorporato.
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 questi esempi le righe 5, 6 e 7 soddisfano la prima condizione Dia=0,2. Tuttavia, solo la riga 7 soddisfa entrambi i criteri Dia=0,2 e len>=4,1.
Legge un valore dalla riga trovata utilizzando la funzione GoExcel.FindRow.
Sintassi
GoExcel.CurrentRowValue("column name")
"column name"
Nome del titolo della colonna per il valore della cella da recuperare dalla riga corrente.
Valori restituiti
Valore della cella della colonna della riga corrente, trovata in precedenza tramite la funzione GoExcel.FindRow.
Errori
Restituisce un messaggio di errore se non viene trovata la colonna.
Esempio
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")
Consente di leggere o scrivere i valori nelle celle del foglio di calcolo.
Sintassi
GoExcel.CellValue("filename", "sheetname", "cellnumber")
"filename"
Vedere Specificazione del file di Excel.
"sheetname"
Nome del foglio nel documento di Excel che contiene la cella di destinazione. Il foglio può essere qualsiasi foglio esistente.
"cell number"
Indirizzo della cella per la lettura o scrittura (ad esempio "A7"). È anche possibile specificare un intervallo denominato nel foglio di lavoro.
Valori restituiti
Errori
Requisiti di formato tabella di Excel
I valori di cella possono essere numerici o di testo.
Esempi
Lettura di un foglio di calcolo incorporato:
head_rad = GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1","A1")
Scrittura in un foglio di calcolo incorporato:
GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1", "A1")= head_rad
Lettura di un foglio di calcolo esterno:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "A5") message =GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "B5")
Scrittura in un foglio di calcolo esterno:
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A6") = "Hello World" GoExcel.Save
Consente di leggere o scrivere in un indirizzo di cella specifico di un foglio di calcolo in seguito all'utilizzo della funzione GoExcel.CellValue o GoExcel.Open. Questa funzione utilizza il file e il foglio aperti in precedenza.
Sintassi
GoExcel.CurrentCellValue("cellnumber")
GoExcel.CellValue("cellnumber") (senza specificare nome file e nome del foglio)
"cellnumber"
Indirizzo della cella o intervallo denominato del valore della cella da leggere o scrivere nel foglio di calcolo corrente.
Valori restituiti
Il valore della cella corrispondente al numero della cella specificato.
Errori
Esempi
Lettura di una serie di celle da un singolo foglio di calcolo:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1") head_thick = GoExcel.CellValue("B1") pin_length = GoExcel.CellValue("C1") shaft_rad = GoExcel.CellValue("D1")
Scrittura di una serie di celle in un documento foglio di calcolo:
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
Opera come la funzione CellValue. Consente di specificare un intervallo denominato nella cartella di lavoro di Excel anziché un indirizzo di cella. Il nome deve essere un nome all'interno della cartella di lavoro e l'intervallo deve essere limitato ad una singola cella. È possibile accedere agli intervalli denominati del foglio di lavoro tramite la sintassi standard CellValue, utilizzando il nome anziché un indirizzo della cella.
Utilizzare GoExcel.CellValue o GoExcel.Open per aprire il file di Excel prima di utilizzare NamedRangeValue in una regola.
Sintassi
GoExcel.NamedRangeValue("PinLength")
Consente di aprire il foglio di calcolo di Excel e, se lo si desidera, di attivare un foglio di lavoro denominato. È quindi possibile utilizzare funzioni quali GoExcel.FindRow e GoExcel.CellValue per estrarre informazioni o modificare il foglio di lavoro.
Sintassi
GoExcel.Open("filename", "sheetname")
"filename"
Vedere Specificazione del file di Excel.
"sheetname"
Nome del foglio nel documento di Excel da attivare. Il foglio può essere qualsiasi foglio esistente.
Valori restituiti
N/D
Errori
File Excel non trovato.
Esempi
Se non viene specificato alcun foglio viene utilizzato per default "Foglio1".
GoExcel.Open("Spreadsheet.xls")
È inoltre possibile specificare un altro foglio di lavoro.
GoExcel.Open("Spreadsheet.xls", "MyOtherSheet")
Consente di salvare il documento di Excel corrente. Utilizzare questa funzione se sono state modificate celle tramite le funzioni GoExcel.CellValue o GoExcel.CurrentCellValue
Valori restituiti
N/D
Errori
N/D
Esempio
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!" GoExcel.CellValue("A2") = 5.42 GoExcel.Save
Questa funzione viene utilizzata per due scopi:
Lettura da un foglio di calcolo di Excel
È possibile leggere un intervallo di celle orientato verticalmente. La funzione consente di leggere i valori partendo dalla prima cella e proseguendo verso il basso fino a raggiungere la seconda cella specificata nella funzione:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "A10")
Se una stringa vuota ("") sostituisce l'indirizzo della seconda cella, inizia la lettura dall'indirizzo della prima cella e continua verso il basso fino a raggiungere una cella vuota:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "")
È possibile leggere un intervallo di celle orientato orizzontalmente.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1")
Se il foglio di calcolo è stato precedentemente indicato come riferimento nella regola, è inoltre possibile omettere il nome file e il nome del foglio:
Multivalue.List("parameter") = GoExcel.CellValues("B2", "G2")
Scrittura in un foglio di calcolo di Excel
È possibile scrivere i valori in un intervallo di celle orientato verticalmente. La funzione consente di scrivere i valori partendo dalla prima cella e proseguendo verso il basso, scrivendo valori fino a raggiungere la seconda cella specificata nella funzione:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = Multivalue.List("parameter")
È possibile scrivere i valori in un intervallo di celle orientato verticalmente. Se una stringa vuota ("") sostituisce l'indirizzo della seconda cella, iLogic utilizza tutte le celle necessarie per contenere tutti i membri dell'elenco a più valori:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "") = Multivalue.List("parameter")
È possibile scrivere i valori in un intervallo di celle orientato orizzontalmente.
GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1") = Multivalue.List("parameter")
Se il foglio di calcolo è stato precedentemente indicato come riferimento nella regola, è inoltre possibile omettere il nome file e il nome del foglio:
GoExcel.CellValues("B2", "G2") = Multivalue.List("parameter")
Consente di chiudere il foglio di calcolo di Excel.
Utilizzato prima della funzione GoExcel.FindRow per specificare il numero della riga del foglio di calcolo contenente i nomi di colonna. Il numero di riga di default è 1. Modificare questo valore se si dispone di ulteriori righe al di sopra della riga del nome della colonna.
Esempio
GoExcel.TitleRow = 2
Utilizzato prima della funzione GoExcel.FindRow per specificare il numero della prima riga del foglio di calcolo contenente i dati. Il numero di riga di default è 2.
Sintassi
GoExcel.FindRowStart = <row>
<row>
Riga in corrispondenza della quale iniziano i dati.
Esempi
Il valore di default 2 indica che i dati partono dalla riga 2 e seguono una riga del titolo:
GoExcel.FindRowStart = 2
Se si dispone di due righe del titolo, aggiungere la seguente istruzione alla regola prima dell'istruzione contenente GoExcel.FindRow:
GoExcel.FindRowStart = 3
Fornisce l'accesso dalle regole iLogic all'operazione Modifica origine.
Questa funzione consente di sostituire un foglio di calcolo di Excel che attualmente gestisce il modello con un altro foglio di calcolo. I valori contenuti nel nuovo foglio di calcolo assumono la gestione delle quote del modello.
Sintassi
changeOK = GoExcel.ChangeSourceOfLinked(partialOldName, newName)
partialOldName
Parte del nome del foglio di calcolo da sostituire.
partialOldName può essere una stringa vuota "" che specifica il primo file di Excel collegato. Spesso una parte o un assieme dispone di un solo file di Excel.
newName
Nuovo nome completo del foglio di calcolo che può essere un nome file assoluto o relativo.
Esempio
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
Utilizzato con la funzione GoExcel.FindRow per cercare un valore all'interno di un intervallo anziché un valore esatto. La tolleranza di default è 0,0000001 e non dipende dalle unità del documento.
Sintassi
GoExcel.Tolerance = <tolerance>
Impostare una tolleranza maggiore per espandere l'intervallo di valori consentiti.
Esempio
È possibile utilizzare l'istruzione per la ricerca nel modo seguente:
GoExcel.Tolerance = 0.001 i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", "=", 2.3)
L'istruzione diventa equivalente alla ricerca seguente senza tolleranza:
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", ">=", 2.299, "length","<=", 2.301)
Impedisce la visualizzazione delle finestre di dialogo di conferma di Excel.
Sintassi
GoExcel.DisplayAlerts = True
GoExcel.DisplayAlerts = False
Vero
Visualizza le finestre di dialogo di conferma di Microsoft® Excel (impostazione di default).
Falso
Non visualizza le finestre di dialogo di conferma di Excel.
Apre Excel. Utilizzare questa funzione solo se si ha familiarità con l'interfaccia COM di Excel. Prima di utilizzare questa funzione in una regola, richiamare un'altra funzione GoExcel per inizializzare l'applicazione.
Sintassi
excelApp = GoExcel.Application