Modul iLogic poskytuje funkce pro čtení a zápis do dokumentů tabulkového procesoru aplikace Microsoft® Excel. Chcete-li přejít k funkcím datových propojení s aplikací Excel, na kartě Systém v oblasti Fragmenty dialogu Upravit pravidlo modulu iLogic rozbalte uzel Spojení na data aplikace Excel.
K dispozici jsou dva typy funkcí datových propojení aplikace Excel.
Pro čtení a zápis do jiných formátů souborů přidejte uživatelský kód jazyku VB.NET do pravidel.
K exportu rozpisky sestavy do aplikace Microsoft Excel nebo jiných formátů použijte speciální funkci ThisBOM.Export®.
Data aplikace Microsoft® Excel můžete vložit nebo propojit s dokumentem aplikace Inventor, případně je můžete zachovat jako externí soubor. Tyto funkce vyžadují buď název souboru nebo specifikování propojeného nebo vloženého souboru aplikace Excel.
Pro název souboru můžete specifikovat relativní nebo absolutní cestu. Použití absolutních cest však může ztížit zaslání modelu jinému uživateli na jiném počítači. Jestliže není cesta specifikovaná, modul iLogic předpokládá, že dokument aplikace Excel je ve stejné složce jako aktuální dokument aplikace Inventor. Relativní cesta je interpretována jako relativní k složce obsahující dokument aplikace Inventor.
Modul iLogic také hledá soubor na cestě pracovního prostoru projektu. Pro cestu pracovního prostoru projektu můžete použít relativní cestu.
Podporované přípony názvů souborů zahrnují .xls, .xlsx, .xlsm, a .xlsb.
Místo názvu souboru lze také specifikovat propojený nebo vložený tabulkový procesor. V případě vestavěných tabulek použijte syntaxi 3rd Party:Embedding#.
V případě propojených sešitů použijte syntaxi 3rd Party:NázevPropojenéhoSešitu.xls. Určete název, který bude zobrazen ve stromu modelu aplikace Inventor v sekci Třetí strana.
Jestliže používáte vloženou tabulku, vložte ji pomocí Propojení v dialogu Parametry. Neměňte výchozí název vložené tabulky, který jí byl dán aplikací Inventor (například Vložení 1). Funkce GoExcel vyžaduje původní název.
Chcete-li připojit soubor, klikněte na kartu Správa panel Vložení
Vložit objekt nebo použijte příkaz Připojit v dialogu Parametry.
Vyhledává řádek na základě jednoho nebo více kritérií hodnoty sloupce.
Syntaxe
GoExcel.FindRow("název souboru", "název listu", "název prvního sloupce", "operátor", hledaná hodnota, "název druhého sloupce", "operátor", hledaná hodnota, "název třetího sloupce",…)
"název souboru"
Určte datový soubor.
"název listu"
List v dokumentu aplikace Excel obsahující hledanou tabulku. List může být jakýkoliv existující list.
"název prvního sloupce"
Název prvního sloupce v hledané tabulce. Názvy sloupců jsou obvykle v řádku 1 počínaje sloupcem A.
"operátor"
Možné hodnoty zahrnují:
hledaná hodnota
Textová nebo číselná hodnota, kterou lze specifikovat pomocí explicitní hodnoty, parametru nebo lokální proměnné.
"název druhého sloupce"
Název druhého sloupce v hledané tabulce.
"operátor"
<=, >=, nebo =
hledaná hodnota
"název třetího sloupce"
Najít řádek na základě vícenásobných kritérií.
Výsledek
Číslo řádku (celé číslo), které splňuje vyhledávací kritéria. Pokud není odpovídající řádek nalezen, hodnota je -1.
Možné chyby
Požadavky tabulky Excel
Příklady
Tyto příklady nastavují hodnotu proměnné parametru i na číslo řádku tabulky. Hodnota ve sloupci Dia je rovna 0,2 a hodnota ve sloupci Len je větší nebo rovna 4,1. První příklad odkazuje na externí tabulkový procesor a druhý příklad odkazuje na vložený tabulkový procesor.
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)
V těchto příkladech splňují první podmínku Dia=0,2 řádky 5, 6 a 7. Obě kritéria Dia=.2 a len>=4,1 však splňuje pouze řádek 7.
Čte hodnotu z řádku nalezeného pomocí funkce GoExcel.FindRow.
Syntaxe
GoExcel.CurrentRowValue("název sloupce")
"název sloupce"
Název sloupce pro vyhledání hodnoty buňky z aktuálního řádku.
Výsledek
Hodnota buňky ze sloupce aktuálního řádku dříve nalezená pomocí funkce GoExcel.FindRow.
Chyby
Vrací chybové hlášení, pokud není sloupec nalezen.
Příklad
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")
Čte nebo zapisuje hodnoty do buněk tabulkového procesoru.
Syntaxe
GoExcel.CellValue("název souboru", "název listu", "číslo buňky")
"název souboru"
Viz Určte soubor aplikace Excel.
"název listu"
Název listu v dokumentu aplikace Excel, který obsahuje cílovou buňku. List může být jakýkoliv existující list.
"číslo buňky"
Adresa buňky k čtení nebo zápisu (například„A7“). Také lze specifikovat pojmenovaný rozsah v oblasti pracovní tabulky.
Výsledek
Chyby
Požadavky formátu tabulky Excel
Hodnoty buňky mohou být číselné nebo textové.
Příklady
Čtení vloženého tabulkového procesoru:
head_rad = GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1","A1")
Zápis do vloženého tabulkového procesoru:
GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1", "A1")= head_rad
Čtení externího tabulkového procesoru:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "A5") message =GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "B5")
Zápis do externího tabulkového procesoru:
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A6") = "Hello World" GoExcel.Save
Čte nebo zapisuje do buňky tabulky se specifikovanou adresou po použití funkce GoExcel.CellValue nebo GoExcel.Open. Tato funkce používá dříve otevřený soubor a list.
Syntaxe
GoExcel.CurrentCellValue("číslo buňky")
GoExcel.CellValue("číslo buňky") (bez určení názvu souboru a názvu listu)
"číslo buňky"
Adresa buňky nebo pojmenovaný rozsah hodnoty buňky k čtení nebo zápisu do aktuálního tabulkového procesoru.
Výsledek
Hodnota buňky specifikovaného čísla.
Chyby
Příklady
Čtení řady buněk z jednoho tabulkového procesoru:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1") head_thick = GoExcel.CellValue("B1") pin_length = GoExcel.CellValue("C1") shaft_rad = GoExcel.CellValue("D1")
Zápis řady buněk do dokumentu tabulkového procesoru:
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
Funguje stejně jako funkce CellValue. Místo adresy buňky určte pojmenovaný rozsah definovaný v sešitu aplikace Excel. Název musí být názvem v sešitu a rozsah musí být omezený na jednu buňku. Pojmenované rozsahy v oblasti tabulkového procesoru používající standardní syntaxi Hodnota buňky lze zpřístupnit pomocí názvu místo adresy buňky.
Před použitím funkce NamedRangeValue v pravidle otevřete soubor aplikace Excel pomocí funkce GoExcel.CellValue nebo GoExcel.Open.
Syntaxe
GoExcel.NamedRangeValue("délkasvorky")
Otevírá specifikovaný tabulkový procesor aplikace Excel a podle volby aktivuje pojmenovaný sešit. Pak lze použít funkce, například GoExcel.FindRow a GoExcel.CellValue, k extrahování informací nebo úpravě sešitu.
Syntaxe
GoExcel.Open("název souboru", “název listu”)
"název souboru"
Viz Určte soubor aplikace Excel.
"název listu"
Název listu v dokumentu aplikace Excel k aktivování. List může být jakýkoliv existující list.
Výsledek
Není k dispozici
Chyby
Soubor aplikace Excel nenalezen.
Příklady
Když není specifikován žádný název listu, předpokládá se „List1“.
GoExcel.Open("Spreadsheet.xls")
Lze specifikovat také jiný sešit.
GoExcel.Open("Spreadsheet.xls", "MyOtherSheet")
Ukládá aktuální dokument aplikace Excel. Tuto funkci použijte, jestliže jste upravili buňky pomocí funkce GoExcel.CellValue nebo GoExcel.CurrentCellValue.
Výsledek
Není k dispozici
Chyby
Není k dispozici
Příklad
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!" GoExcel.CellValue("A2") = 5.42 GoExcel.Save
Tato funkce slouží pro dva účely:
Čtení z tabulky aplikace Excel
Číst lze z vertikálně orientovaného rozsahu buněk. Tato funkce čte hodnoty počínaje první buňkou a pokračuje dolů, dokud nedosáhne druhou buňku specifikovanou ve funkci.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "A10")
Jestliže prázdný řetězec („“) nahrazuje adresu druhé buňky, začněte číst adresu první buňky a pokračujte dolů, dokud nedosáhnete prázdnou buňku:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "")
Číst lze z horizontálně orientovaného rozsahu buněk:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1")
Jestliže bylo v pravidle dříve odkazováno na tabulkový procesor, lze také vynechat název souboru nebo název listu.
Multivalue.List("parameter") = GoExcel.CellValues("B2", "G2")
Zápis do tabulky aplikace Excel
Hodnoty lze zapisovat do vertikálně orientovaného rozsahu buněk. Tato funkce zapisuje hodnoty počínaje první buňkou a pokračuje dolů, dokud nedosáhne druhou buňku specifikovanou ve funkci.
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = Multivalue.List("parameter")
Hodnoty lze zapisovat do vertikálně orientovaného rozsahu buněk. Jestliže prázdný řetězec („“) nahrazuje adresu druhé buňky, modul iLogic používá tolik buněk, kolik je nutno pro zahrnutí všech členů seznamu s více hodnotami:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "") = Multivalue.List("parameter")
Hodnoty lze zapisovat do horizontálně orientovaného rozsahu buněk:
GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1") = Multivalue.List("parameter")
Jestliže bylo v pravidle dříve odkazováno na tabulkový procesor, lze také vynechat název souboru nebo název listu.
GoExcel.CellValues("B2", "G2") = Multivalue.List("parameter")
Zavírá aktuální tabulkový procesor aplikace Excel.
Používá se před funkcí GoExcel.FindRow k určení čísla řádku tabulky, který obsahuje názvy sloupců. Výchozí číslo řádku je 1. Změňte tuto hodnotu, jestliže máte nad řádkem názvů sloupců dodatečné řádky.
Příklad
GoExcel.TitleRow = 2
Používá se před funkcí GoExcel.FindRow k určení čísla prvního řádku tabulky, který obsahuje data. Výchozí číslo řádku je 2.
Syntaxe
GoExcel.FindRowStart = <řádek>
<řádek>
Řádek, ve kterém začínají data.
Příklady
Výchozí hodnota 2 uvádí, že data začínají na řádku 2 následujícím po jednom řádku názvů.
GoExcel.FindRowStart = 2
Jestliže máte dva řádky názvů, přidejte do pravidla před příkaz obsahující funkci GoExcel.FindRow následující příkaz:
GoExcel.FindRowStart = 3
Poskytuje přístup z pravidel modulu iLogic k operaci Změnit zdroj.
Tato funkce nahradí tabulkový procesor aplikace Excel, který aktuálně řídí model, jiným tabulkovým procesorem. Rozměry modelu jsou pak řízeny hodnotami obsaženými v novém tabulkovém procesoru.
Syntaxe
changeOK = GoExcel.ChangeSourceOfLinked(částečnýStarýNázev, novýNázev)
částečnýStarýNázev
Změna části názvu tabulkového procesoru.
Na místě parametru částečnýStarýNázev lze funkci předat prázdný řetězec "" za účelem shody s prvním propojeným souborem aplikace Excel. Součást nebo sestava má často pouze jeden soubor aplikace Excel.
novýNázev
Úplný nový název tabulkového procesoru, který může být absolutním nebo relativním názvem souboru.
Příklad
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
Používá se s funkcí k vyhledání hodnoty v rozsahu, a ne přesné hodnoty. Výchozí tolerance je 0,0000001 a nezávisí na jednotkách dokumentu.
Syntaxe
GoExcel.Tolerance = <tolerance>
Nastavte větší toleranci pro zvětšení rozsahu přípustných hodnot.
Příklad
Používáte příkaz k vyhledávání následujícím způsobem:
GoExcel.Tolerance = 0.001 i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", "=", 2.3)
Příkaz je stejný jako pro následující vyhledávání bez tolerance:
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", ">=", 2.299, "length","<=", 2.301)
Zabraňuje zobrazování dialogů pro výzvy aplikace Excel.
Syntaxe
GoExcel.DisplayAlerts = True
GoExcel.DisplayAlerts = False
Ano
Zobrazovat výzvy aplikace Microsoft® Excel (výchozí).
Ne
Nezobrazovat výzvy aplikace Excel.
Zpřístupňuje objekt aplikace Excel. Použijte tuto funkci pouze v případě, že máte zkušenosti s rozhraním COM aplikace Excel. Před použitím této funkce v pravidle vyvolejte jinou funkci aplikace GoExcel pro spuštění aplikace.
Syntaxe
aplikaceExcel = GoExcel.Application