iLogic zawiera funkcje reguł służące do odczytu i zapisu danych w arkuszach dokumentów Microsoft® Excel. Aby uzyskać dostęp do funkcji łączy do danych w plikach Excel, rozwiń węzeł Łącza danych Excel na karcie Systemowe w obszarze Szablony kodu okna dialogowego Edycja reguły funkcji iLogic.
Dostępne są dwa typy funkcji odniesień do danych w plikach Excel:
Aby odczytywać i zapisywać dane w plikach innych formatów, należy dodać niestandardowy kod VB.NET do reguł.
Funkcja dedykowana ThisBOM.Export służy do eksportowania zestawienia komponentów zespołu do plików Microsoft® Excel i innych formatów.
Można zagnieździć dane Microsoft® Excel lub utworzyć do nich odnośnik w dokumencie Inventor albo pozostawić je w osobnym pliku. Funkcje te wymagają albo nazwy pliku, albo określenia odnośnika lub zagnieżdżonego pliku Excel.
Nazwa pliku może mieć postać relatywnej lub absolutnej ścieżki dostępu. Użycie absolutnej ścieżki dostępu może jednak utrudnić przesłanie modelu innemu użytkownikowi pracującemu przy innym komputerze. Jeśli ścieżka dostępu nie została określona, iLogic przyjmuje, że dokument Excel znajduje się w tym samym folderze, co dokument Inventor. Relatywna ścieżka dostępu jest interpretowana jako relatywna w stosunku do folderu zawierającego dokument Inventor.
iLogic szuka również pliku pod adresem ścieżki dostępu obszaru roboczego projektu. Pod ścieżką dostępu obszaru roboczego projektu można użyć relatywnej ścieżki dostępu.
Obsługiwane rozszerzenia plików to .xls, .xlsx, .xlsm oraz .xlsb.
Zamiast nazwy pliku można również określić odnośnik lub zagnieżdżony arkusz. Użyj składni 3rd Party:Embedding# dla zagnieżdżonych arkuszy kalkulacyjnych.
Użyj składni 3rd Party: LinkedName.xls dla połączonych arkuszy kalkulacyjnych. Określ nazwę figurującą w drzewie modelu Inventor w części Niezależne.
Aby zagnieździć tabelę, skorzystaj z polecenia Łącze w oknie dialogowym Parametry. Nie należy zmieniać domyślnej nazwy osadzonej tabeli nadanej przez program Inventor (np. Osadzanie 1). GoExcel wymaga nazwy oryginalnej.
Aby połączyć plik, kliknij kartę Zarządzanie panel Wstaw
Wstaw obiekt lub użyj opcji Połączenie dostępnej w oknie dialogowym Parametry.
Wyszukuje wiersz w oparciu o jedno lub więcej kryteriów wartości kolumny.
Składnia
GoExcel.FindRow( "nazwa pliku", "nazwa arkusza", "tytuł pierwszej kolumny", "operator", wartość do wyszukania, "tytuł drugiej kolumny", "operator", wartość do wyszukania, "tytuł trzeciej kolumny", ... )
"nazwa pliku"
Określa plik danych.
"nazwa arkusza”
Arkusz w dokumencie Excel zawierający tabelę do przeszukania. Arkusz może być dowolnym już istniejącym arkuszem.
"tytuł pierwszej kolumny”
Nagłówek pierwszej kolumny w tabeli do przeszukania. Nagłówki kolumn znajdują się zwykle w wierszu 1, począwszy od kolumny A.
"operator"
Wartości mogą obejmować:
wartość do wyszukania
Tekst lub wartość numeryczna, które mogą zostać wyrażone za pomocą ustalonej wartości, parametru lub lokalnej zmiennej.
"tytuł drugiej kolumny"
Nagłówek drugiej kolumny w tabeli do przeszukania.
"operator"
<= , >= lub =
wartość do wyszukania
"tytuł trzeciej kolumny"
Wyszukaj wiersz w oparciu o wiele kryteriów.
Wynik
Numer wiersza (liczba całkowita) odpowiadający kryteriom wyszukiwania. Jeśli nie odnaleziono wiersza odpowiadającego kryteriom, wartość wynosi -1.
Możliwe błędy
Wymogi formatu tabel w plikach Excel
Przykłady
Przedstawione przykłady ustawiają w zmiennej parametru i numer wiersza w tabeli. Parametr Dia równa się 0,2, a parametr Len jest większy niż lub równy 4,1. Pierwszy przykład dotyczy zewnętrznego arkusza kalkulacyjnego, a drugi - zagnieżdżonego arkusza kalkulacyjnego.
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)
W podanych przykładach wiersze 5, 6, i 7 spełniają pierwszy warunek: Dia=0,2. Jednak tylko wiersz 7 spełnia oba kryteria: Dia=0,2 i len>=4,1.
Odczytuje wartość z wyszukanego wiersza, korzystając z funkcji GoExcel.FindRow.
Składnia
GoExcel.CurrentRowValue("nazwa kolumny")
"nazwa kolumny"
Nazwa nagłówka kolumny zawierającej wartość komórki, którą należy uzyskać z bieżącego wiersza.
Wynik
Wartość komórki z kolumny bieżącego wiersza, wcześniej odnaleziona przy użyciu funkcji GoExcel.FindRow.
Błędy
Zwraca komunikat o błędzie, jeśli nie odnaleziono kolumny.
Przykład
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")
Odczytuje lub zapisuje wartości w komórkach arkusza.
Składnia
GoExcel.CellValue("nazwa pliku", "nazwa arkusza", "numer komórki")
"nazwa pliku"
Patrz: Wybierz plik Excel.
"nazwa arkusza”
Nazwa arkusza zawierającego docelową komórkę w dokumencie Excel. Arkusz może być już istniejącym arkuszem.
"numer komórki”
Adres komórki do odczytu lub zapisu (np. „A7”). Można również określić nazwany zakres w arkuszu.
Wynik
Błędy
Wymogi formatu tabel w plikach Excel
Wartości komórek mogą mieć postać numeryczną lub tekstową.
Przykłady
Odczyt zagnieżdżonego arkusza kalkulacyjnego:
head_rad = GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1","A1")
Zapis w zagnieżdżonym arkuszu kalkulacyjnym:
GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1", "A1")= head_rad
Odczyt zewnętrznego arkusza kalkulacyjnego:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "A5") message =GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "B5")
Zapis w zewnętrznym arkuszu kalkulacyjnym:
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A6") = "Hello World" GoExcel.Save
Odczytuje lub zapisuje pod określonym adresem komórki w arkuszu kalkulacyjnym po zastosowaniu funkcji GoExcel.CellValue lub GoExcel.Open. Ta funkcja korzysta z uprzednio otwartego pliku i arkusza.
Składnia
GoExcel.CurrentCellValue("numer komórki")
GoExcel.CellValue("numer komórki") (bez określania nazwy pliku i nazwy arkusza)
"numer komórki"
Adres komórki lub wyznaczony zakres wartości komórki do odczytu lub zapisu w bieżącym arkuszu kalkulacyjnym.
Wynik
Wartość komórki z wyznaczonego numeru komórki.
Błędy
Przykłady
Odczyt serii komórek z jednego arkusza kalkulacyjnego:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1") head_thick = GoExcel.CellValue("B1") pin_length = GoExcel.CellValue("C1") shaft_rad = GoExcel.CellValue("D1")
Zapis w serii komórek w dokumencie arkusza kalkulacyjnego:
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
Działa jak funkcja CellValue. Zamiast adresu komórki podaj określony zakres zdefiniowany w skoroszycie Excel. Nazwa musi figurować w skoroszycie, a zakres musi się ograniczać do pojedynczej komórki. Dostęp do określonych zakresów skoroszytu można uzyskać, stosując standardową składnię CellValue, używając nazwy zamiast adresu komórki.
Zastosuj GoExcel.CellValue lub GoExcel.Open, aby otworzyć plik Excel przed użyciem NamedRangeValue w regule.
Składnia
GoExcel.NamedRangeValue("długość")
Otwiera wyznaczony arkusz Excel i, opcjonalnie, aktywuje nazwany arkusz kalkulacyjny. Następnie można użyć funkcji takich jak GoExcel.FindRow i GoExcel.CellValue, aby wyodrębnić informacje lub zmodyfikować arkusz kalkulacyjny.
Składnia
GoExcel.Open("nazwa pliku”, "nazwa arkusza")
"nazwa pliku"
Patrz: Wybierz plik Excel.
"nazwa arkusza”
Nazwa arkusza przeznaczonego do aktywacji w dokumencie Excel. Arkusz może być dowolnym już istniejącym arkuszem.
Wynik
nie dotyczy
Błędy
Nie odnaleziono pliku Excel.
Przykłady
Jeśli nie podano nazwy arkusza, nazwą domyślną jest „Sheet1” („Arkusz1”).
GoExcel.Open("Spreadsheet.xls")
Można również wybrać inny arkusz.
GoExcel.Open("Spreadsheet.xls", "MyOtherSheet")
Zapisuje bieżący dokument Excel. Należy użyć tej funkcji, jeśli nastąpiła modyfikacja komórek przy pomocy funkcji GoExcel.CellValue lub GoExcel.CurrentCellValue.
Wynik
nie dotyczy
Błędy
nie dotyczy
Przykład
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!" GoExcel.CellValue("A2") = 5.42 GoExcel.Save
Ta funkcja ma dwa zastosowania:
Odczyt z arkusza kalkulacyjnego Excel
Odczyt jest możliwy z pionowo ukierunkowanego zakresu komórek. Funkcja odczytuje wartości poczynając od pierwszej komórki i posuwa się w dół do momentu, gdy natrafi na drugą komórkę określoną w funkcji.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "A10")
Jeśli adres drugiej komórki zostanie zastąpiony pustym ciągiem (""), funkcja rozpocznie odczyt od pierwszej komórki i będzie kontynuować do momentu, gdy natrafi na pustą komórkę.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "")
Możliwy jest również odczyt z poziomo ukierunkowanego zakresu komórek:
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1")
Jeśli arkusz posiada już wcześniejsze odniesienie w regule, można również ominąć nazwę pliku u nazwę arkusza:
Multivalue.List("parameter") = GoExcel.CellValues("B2", "G2")
Zapis w arkuszu kalkulacyjnym Excel
Wartości można zapisywać w pionowo ukierunkowanym zakresie komórek. Funkcja zapisuje wartości poczynając od pierwszej komórki i posuwa się w dół do momentu, gdy natrafi na drugą komórkę określoną w funkcji.
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = Multivalue.List("parameter")
Wartości można zapisywać w pionowo ukierunkowanym zakresie komórek. Jeśli adres drugiej komórki zostanie zastąpiony pustym ciągiem (""), iLogic wykorzysta tyle komórek, ile trzeba, by pomieścić wszystkie pozycje na liście wielowartościowej:
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "") = Multivalue.List("parameter")
Wartości można również zapisywać w poziomo ukierunkowanym zakresie komórek:
GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1") = Multivalue.List("parameter")
Jeśli arkusz posiada już wcześniejsze odniesienie w regule, można również ominąć nazwę pliku u nazwę arkusza:
GoExcel.CellValues("B2", "G2") = Multivalue.List("parameter")
Zamyka bieżący arkusz kalkulacyjny Excel.
Funkcja używana przed GoExcel.FindRow, aby określić numer wiersza zawierającego nagłówki kolumn w arkuszu kalkulacyjnym. Domyślnym numerem wiersza jest 1. Zmień tę wartość, jeśli ponad wierszem nagłówków kolumn znajdują się dodatkowe wiersze.
Przykład
GoExcel.TitleRow = 2
Funkcja używana przed funkcją GoExcel.FindRow, aby określić numer pierwszego wiersza zawierającego dane w arkuszu kalkulacyjnym. Numer domyślny to 2.
Składnia
GoExcel.FindRowStart = <wiersz>
<wiersz>
Pierwszy wiersz zawierający dane.
Przykłady
Wartość domyślna 2 oznacza, że dane rozpoczynają się w wierszu 2, następującym po wierszu nagłówków kolumn.
GoExcel.FindRowStart = 2
Jeśli nagłówki kolumn zajmują dwa wiersze, dodaj poniższą instrukcję przed instrukcją zawierającą GoExcel.FindRow:
GoExcel.FindRowStart = 3
Umożliwia dostęp z reguł iLogic do operacji Zmień źródło.
Ta funkcja zastępuje arkusz kalkulacyjny Excel stanowiący źródło danych dla modelu innym arkuszem. Model przyjmuje wymiary w oparciu o wartości znajdujące się w nowym arkuszu kalkulacyjnym.
Składnia
changeOK = GoExcel.ChangeSourceOfLinked(częściowa_stara_nazwa, nowa_nazwa)
częściowa_stara_nazwa
Część nazwy arkusza kalkulacyjnego do zastąpienia.
częściowa_stara_nazwa może mieć postać pustego ciągu "", aby być w zgodzie z pierwszym połączonym plikiem Excel. Część lub zespół posiada często tylko jeden plik Excel.
nowa_nazwa
Kompletna nazwa nowego arkusza, która może mieć postać absolutnej lub relatywnej nazwy (ścieżki dostępu) pliku.
Przykład
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
Funkcja stosowana z funkcją GoExcel.FindRow, aby wyszukać wartość należącą do przedziału, a nie dokładnie określoną wartość. Domyślna tolerancja wynosi 0.0000001 i nie jest zależna od jednostek w dokumencie.
Składnia
GoExcel.Tolerance = <Tolerancja>
Ustala wyższą tolerancję, by powiększyć zakres dopuszczalnych wartości.
Przykład
Instrukcja ta służy do wyszukiwania w następujący sposób:
GoExcel.Tolerance = 0.001 i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", "=", 2.3)
Instrukcja staje się równoważna z następującym wyszukiwaniem o zerowej tolerancji:
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", ">=", 2.299, "length","<=", 2.301)
Zapobiega wyświetlaniu okien komunikatów programu Excel.
Składnia
GoExcel.DisplayAlerts = True
GoExcel.DisplayAlerts = False
True
Wyświetlaj okna komunikatów Microsoft® Excel (domyślnie).
False
Nie wyświetlaj okien komunikatów programu Excel.
Uzyskuje dostęp do obiektu aplikacji Excel. Funkcji tej powinni używać wyłącznie użytkownicy posiadający doświadczenie z zakresu interfejsu Excel COM. Przed użyciem tej funkcji w regule zastosuj inną funkcję GoExcel, aby uruchomić aplikację.
Składnia
excelApp = GoExcel.Application