Funkcja Łącza danych Excel — odniesienie (iLogic)

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.

Wybierz plik Excel

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.

Uwaga: Nie należy wstawiać spacji po znaku : w składni 3rd Party:Nazwa.

Aby połączyć plik, kliknij kartę Zarządzanie panel Wstaw Wstaw obiekt lub użyj opcji Połączenie dostępnej w oknie dialogowym Parametry.

GoExcel.FindRow

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.

GoExcel.CurrentRowValue

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")

GoExcel.CellValue

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
Uwaga: Wymaga GoExcel.Save, aby zapisać zmiany w arkuszu kalkulacyjnym:

GoExcel.CurrentCellValue, GoExcel.CellValue

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

GoExcel.NameRangeValue

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ść")

GoExcel.Open

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")

GoExcel.Save

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

GoExcel.CellValues

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")

GoExcel.Close

Zamyka bieżący arkusz kalkulacyjny Excel.

GoExcel.TitleRow

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

GoExcel.FindRowStart

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

GoExcel.ChangeSourceOfLinked

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.

Uwaga: Funkcja ta jest również dostępna jako operacja ręczna w menu kontekstowym w arkuszach Excel, do których odnośniki znajdują się w modelu.

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

GoExcel.Tolerance

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)

GoExcel.DisplayAlerts

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.

GoExcel.Application

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