iLogic에서는 Microsoft® Excel 스프레드시트 문서를 읽고 쓸 수 있는 규칙 함수를 제공합니다. Excel 데이터 링크 함수에 액세스하려면 iLogic 규칙 편집 대화상자에 있는 조각 영역의 시스템 탭에서 Excel 데이터 링크 노드를 확장합니다.
사용 가능한 Excel 데이터 연결 함수에는 다음 두 가지 유형이 있습니다.
다른 파일 형식을 읽고 쓰려면 사용자 VB.NET 코드를 규칙에 추가합니다.
전용 함수인 ThisBOM.Export를 사용하여 조립품의 BOM을 Microsoft® Excel 및 기타 형식으로 내보냅니다.
Microsoft® Excel 데이터를 포함하거나 이 데이터를 Inventor 문서에 링크하거나 외부 파일로 유지할 수 있습니다. 이 함수에는 연결되거나 포함된 Excel 파일의 파일 이름이나 지정사항이 필요합니다.
파일 이름의 경우 상대 경로나 절대 경로를 지정할 수 있습니다. 그러나 절대 경로를 사용할 경우 다른 컴퓨터의 사용자에게 모형을 보내기가 어려울 수 있습니다. 경로를 지정하지 않을 경우 iLogic에서는 Excel 문서가 현재 Inventor 문서와 같은 폴더에 있다고 가정합니다. 상대 경로는 Inventor 문서가 포함된 폴더에 상대적인 경로로 해석됩니다.
또한 iLogic에서는 프로젝트 작업공간 경로에서도 파일을 검색합니다. 그러므로 프로젝트 작업공간 경로 아래의 상대 경로를 사용할 수 있습니다.
지원되는 파일 이름 확장자에는 .xls, .xlsx, .xlsm, .xlsb 등이 있습니다.
파일 이름 대신에 연결되거나 포함된 스프레드시트를 지정할 수도 있습니다. 포함된 스프레드시트에 3rd Party:Embedding# 구문을 사용합니다.
링크된 스프레드시트에 3rd Party:LinkedName.xls 구문을 사용합니다. Inventor 모형 트리에서 써드 파티 아래에 표시되는 이름을 지정합니다.
포함된 테이블을 사용하는 경우 매개변수 대화상자의 링크를 사용하여 테이블을 포함합니다. Embedding 1과 같이 Inventor에서 포함된 테이블에 부여한 기본 이름은 변경하지 마십시오. GoExcel에는 원래 이름이 필요합니다.
파일을 링크하려면 매개변수 대화상자에서 관리 탭 삽입 패널
객체 삽입 또는 링크를 클릭합니다.
하나 이상의 열 값을 기준으로 행을 검색합니다.
구문
GoExcel.FindRow("filename", "sheetname", "first column title", "operator", value to look for, "second column title", "operator", value to look for, "third column title",...)
”filename”
데이터 파일을 지정합니다.
”sheetname”
검색할 테이블이 포함된 Excel 문서의 시트입니다. 시트는 임의의 기존 시트일 수 있습니다.
”first column title”
검색할 테이블의 첫 번째 열 제목입니다. 일반적으로 열 제목은 열 A에서 시작하여 행 1에 배치됩니다.
”operator”
가능한 값은 다음과 같습니다.
value to look for
명시적인 값, 매개변수 또는 로컬 변수로 지정할 수 있는 텍스트 또는 숫자 값입니다.
”second column title”
검색할 테이블에서 두 번째 열의 제목입니다.
”operator”
<= , >= 또는 =
value to look for
”third column title”
여러 기준에 따라 행을 찾습니다.
반환하는 항목
검색 기준과 일치하는 행 번호(정수)입니다. 일치하는 행이 없을 경우 값은 -1입니다.
가능한 오류
Excel 테이블 요구사항
예
이 예제에서는 매개변수의 변수 i 값을 테이블의 행 번호로 설정합니다. Dia는 0.2이며 Len은 4.1보다 크거나 같습니다. 첫 번째 예제에서는 외부 스프레드시트를 참조하며 두 번째 예제에서는 포함된 스프레드시트를 참조합니다.
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)
이 예제에서 행 5, 행 6 및 행 7이 첫 번째 조건인 Dia=.2와 일치합니다. 그러나 행 7은 Dia=.2와 len>=4.1 조건에 모두 일치합니다.
GoExcel.FindRow 함수를 사용하여 찾은 행에서 값을 읽습니다.
구문
GoExcel.CurrentRowValue("column name")
”column name”
현재 행에서 검색할 셀 값의 열 제목 이름입니다.
반환하는 항목
이전에 GoExcel.FindRow 함수로 찾은 현재 행에서 열의 셀 값입니다.
오류
열을 찾지 못하면 오류 메시지를 반환합니다.
예제
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("filename", "sheetname", "cellnumber")
”filename”
Excel 파일 지정을 참고하십시오.
”sheetname”
Excel 문서에서 대상 셀이 포함된 시트의 이름입니다. 시트는 임의의 기존 시트일 수 있습니다.
”cell number”
"A7"과 같이 읽고 쓸 수 있는 셀 주소입니다. 워크시트 범위에서 명명된 범위를 지정할 수도 있습니다.
반환하는 항목
오류
Excel 테이블 형식 요구사항
셀 값은 숫자 또는 텍스트일 수 있습니다.
예
포함된 스프레드시트 읽기:
head_rad = GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1","A1")
포함된 스프레드시트 쓰기:
GoExcel.CellValue("3rd Party:Embedding 4", "Sheet1", "A1")= head_rad
외부 스프레드시트 읽기:
head_rad = GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "A5") message =GoExcel.CellValue("Spreadsheet.xlsx", "Sheet1", "B5")
외부 스프레드시트 쓰기:
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A6") = "Hello World" GoExcel.Save
GoExcel.CellValue 또는 GoExcel.Open 함수를 사용한 이후에 스프레드시트의 특정 셀 주소에서 읽거나 씁니다. 이 함수는 이전에 열어 놓은 파일 및 시트를 사용합니다.
구문
GoExcel.CurrentCellValue("cellnumber")
GoExcel.CellValue("cellnumber") (파일 이름 및 시트 이름 지정 안 함)
”cellnumber”
현재 스프레드시트에서 읽거나 쓸 셀 주소 또는 명명된 셀 값 범위입니다.
반환하는 항목
지정된 셀 번호의 셀 값
오류
예
단일 스프레드시트에서 일련의 셀을 읽습니다.
head_rad = GoExcel.CellValue("Spreadsheet.xlsx","Sheet1","A1") head_thick = GoExcel.CellValue("B1") pin_length = GoExcel.CellValue("C1") shaft_rad = GoExcel.CellValue("D1")
스프레드시트 문서에서 일련의 셀에 씁니다.
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
CellValue 함수처럼 작동합니다. 셀 주소 대신에 Excel 통합 문서에 정의된 명명된 범위를 지정합니다. 이름은 통합 문서 내에 있는 이름이어야 하며 범위는 단일 셀로 한정되어야 합니다. 표준 CellValue 구문을 사용하여 셀 주소 대신 이름을 사용하면 작업 시트 범위의 명명된 범위에 액세스할 수 있습니다.
규칙에서 NamedRangeValue를 사용하기 전에 GoExcel.CellValue 또는 GoExcel.Open을 사용하여 Excel 파일을 엽니다.
구문
GoExcel.NamedRangeValue("PinLength")
지정된 Excel 스프레드시트를 열며 선택적으로 명명된 작업 시트를 활성화합니다. 그런 다음 GoExcel.FindRow, GoExcel.CellValue 등의 함수를 사용하여 작업 시트에서 정보를 추출하거나 작업 시트를 수정할 수 있습니다.
구문
GoExcel.Open("filename", “sheetname”)
”filename”
Excel 파일 지정을 참고하십시오.
”sheetname”
활성화할 Excel 문서의 시트 이름입니다. 시트는 임의의 기존 시트일 수 있습니다.
반환하는 항목
해당 없음
오류
Excel 파일을 찾을 수 없습니다.
예
시트 이름이 지정되지 않은 경우 "시트1"이 사용됩니다.
GoExcel.Open("Spreadsheet.xls")
다른 워크시트를 지정할 수도 있습니다.
GoExcel.Open("Spreadsheet.xls", "MyOtherSheet")
현재 Excel 문서를 저장합니다. GoExcel.CellValue 또는 GoExcel.CurrentCellValue 함수를 사용하여 셀을 수정한 경우 이 함수를 사용합니다.
반환하는 항목
해당 없음
오류
해당 없음
예제
GoExcel.CellValue("Spreadsheet.xls", "Sheet1", "A1") = "Hello, World!" GoExcel.CellValue("A2") = 5.42 GoExcel.Save
이 함수는 두 가지 용도로 사용됩니다.
Excel 스프레드시트에서 읽기
세로 방향의 셀 범위에서 값을 읽을 수 있습니다. 이 함수는 첫 번째 셀에서 시작하여 함수에 지정된 두 번째 셀이 도달할 때까지 아래로 계속하여 값을 읽습니다.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "A10")
두 번째 셀 주소 대신에 빈 문자열("")을 사용할 경우 첫 번째 셀 주소에서 읽기 시작하여 빈 셀을 만날 때까지 아래로 계속해서 읽습니다.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "")
가로 방향의 셀 범위에서 값을 읽을 수 있습니다.
Multivalue.List("parameter") = GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1")
이전에 스프레드시트가 규칙에 참조된 경우 파일 이름과 시트 이름을 생략할 수도 있습니다.
Multivalue.List("parameter") = GoExcel.CellValues("B2", "G2")
Excel 스프레드시트에 쓰기
세로 방향의 셀 범위에 값을 쓸 수 있습니다. 이 함수는 첫 번째 셀에서 시작하여 함수에 지정된 두 번째 셀이 도달할 때까지 아래로 계속하여 값을 씁니다.
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "A10") = Multivalue.List("parameter")
세로 방향의 셀 범위에 값을 쓸 수 있습니다. 두 번째 셀 주소 대신에 빈 문자열("")을 사용할 경우 iLogic에서는 다중 값 리스트의 모든 멤버를 포함하는 데 필요한 수만큼의 셀을 사용합니다.
GoExcel.CellValues("filename.xls", "Sheet1", "A2", "") = Multivalue.List("parameter")
가로 방향의 셀 범위에 값을 쓸 수 있습니다.
GoExcel.CellValues("filename.xls", "Sheet1", "A1", "J1") = Multivalue.List("parameter")
이전에 스프레드시트가 규칙에 참조된 경우 파일 이름과 시트 이름을 생략할 수도 있습니다.
GoExcel.CellValues("B2", "G2") = Multivalue.List("parameter")
현재 Excel 스프레드시트를 닫습니다.
GoExcel.FindRow 앞에 이 함수를 사용하여 스프레드시트에서 열 이름이 포함된 행의 번호를 지정합니다. 기본 행 번호는 1입니다. 열 이름 행 위에 추가 행이 있을 경우 이 값을 변경합니다.
예제
GoExcel.TitleRow = 2
GoExcel.FindRow 함수 앞에 사용하여 스프레드시트에서 데이터가 포함된 첫 번째 행의 번호를 지정합니다. 기본 행 번호는 2입니다.
구문
GoExcel.FindRowStart = <행>
<행>
데이터가 시작되는 행입니다.
예
기본값 2는 데이터가 행 2에서 시작하며 바로 위에 제목 행이 있음을 나타냅니다.
GoExcel.FindRowStart = 2
제목 행이 두 개 있을 경우 규칙에서 GoExcel.FindRow가 포함된 문 앞에 다음 문을 추가합니다.
GoExcel.FindRowStart = 3
iLogic 규칙에서 원본 변경 작업에 액세스합니다.
이 함수는 현재 모형을 구동하는 Excel 스프레드시트를 다른 스프레드시트로 바꿉니다. 그러면 새 스프레드시트에 포함된 값으로 모형 치수가 구동됩니다.
구문
changeOK = GoExcel.ChangeSourceOfLinked(partialOldName, newName)
partialOldName
대체할 스프레드시트 이름 부분입니다.
첫 번째로 연결된 Excel 파일과 일치시키기 위해 partialOldName은 빈 문자열 ""일 수 있습니다. 종종 부품이나 조립품에는 Excel 파일이 한 개만 있습니다.
newName
전체 새 스프레드시트 이름으로, 절대 또는 상대 파일 이름일 수 있습니다.
예제
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.FindRow 함수와 함께 사용합니다. 기본 공차는 0.0000001이며 문서 단위와 별개입니다.
구문
GoExcel.Tolerance = <공차>
허용되는 값 범위를 확장하려면 더 높은 공차를 설정합니다.
예제
다음과 같은 방법으로 이 문을 사용하여 검색합니다.
GoExcel.Tolerance = 0.001 i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", "=", 2.3)
이 문은 공차가 없는 다음 검색과 같습니다.
i = GoExcel.FindRow("Table1.xlsx", "Sheet1", "length", ">=", 2.299, "length","<=", 2.301)
Excel 프롬프트 대화상자를 표시하지 않습니다.
구문
GoExcel.DisplayAlerts = True
GoExcel.DisplayAlerts = False
참
Microsoft® Excel 프롬프트를 표시합니다(기본값).
거짓
Excel 프롬프트를 표시하지 않습니다.
Excel 응용프로그램 객체에 액세스합니다. Excel COM 인터페이스를 사용한 경험이 있을 경우에만 이 함수를 사용합니다. 규칙에서 이 함수를 사용하기 전에 다른 GoExcel 함수를 호출하여 응용프로그램을 초기화합니다.
구문
excelApp = GoExcel.Application