커뮤니티

Excel로부터 데이터 불러와서 배열에 저장

프로필 이미지
곰탈
2013-08-19 12:30:00
1200
글번호 222514
답변완료
예스스팟에서 Excel에 저장한 값을 읽어와서 배열에 저장하는 로직을 부탁드리고자 합니다. Excel에는 하나의 시트에 두 컬럼에 데이터를 넣을텐데, 첫번째 칼럼은 숫자이고 두번째 칼럼은 문자열입니다. 열의 개수는 유동적이며 스팟에서 Excel 데이터를 불러올 때 현재 열 개수를 확인해야 합니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-08-21 19:44:46

안녕하세요 예스스탁입니다. 엑셀자체에서 행의 값은 숫자로 리턴이 되는데 열의 값이 알파벳으로만 리턴이 되어 특정행의 값을 우측으로 이동하며 적혀진 값을 배열변수에 저장하려면 열을 지정할 수 있는 내용을 만들어 사용해야 합니다. 아래식은 알파벳조합을 인식하는 배열변수를 만들고 해당 배열변수 이용해 특정행에서 우측으로 가며 값을 배열변수에 저장하게 작성했습니다. 참고하시기 바랍니다. var ABC = []; var C3 = []; var C4 = []; function Main_OnStart() { Main.MessageList("행기준 사용된 셀갯수 :",Excel1.GetColCount(1)," 열기준 사용된 셀갯수:",Excel1.GetRowCount(1)) //A~CZ까지 ABC 벼열변수에 저장 [1]부터 저장 ABC[1] = "A"; ABC[2] = "B"; ABC[3] = "C"; ABC[4] = "D"; ABC[5] = "E"; ABC[6] = "F"; ABC[7] = "G"; ABC[8] = "H"; ABC[9] = "I"; ABC[10] = "J"; ABC[11] = "K"; ABC[12] = "L"; ABC[13] = "M"; ABC[14] = "N"; ABC[15] = "O"; ABC[16] = "P"; ABC[17] = "Q"; ABC[18] = "R"; ABC[19] = "S"; ABC[20] = "T"; ABC[21] = "U"; ABC[22] = "V"; ABC[23] = "W"; ABC[24] = "X"; ABC[25] = "Y"; ABC[26] = "Z"; iii = 0; for (var i = 1; i <= 3; i++) { for (var j = 1; j <= 26; j++) { iii = iii +1; ABC[26+iii] = ABC[i]+ABC[j]; } } //첨부된 그림과 같은 값을 배열변수에 저장 //C3행의 값을 우측으로 진행하며 배열변수에 저장 //C4행의 값을 우측으로 진행하며 배열변수에 저장 for (var ii = 3; ii < 3+Excel1.GetColCount(1); ii++) { C3[ii-3] = Excel1.GetData(1, ABC[ii]+3) C4[ii-3] = Excel1.GetData(1, ABC[ii]+4) } Main.MessageList("알파벳조합:",ABC); Main.MessageList("3행:",C3); Main.MessageList("4행:",C4); } 수식에서 엑셀에서 값을 불러와 저장하실 때 어떤셀에서 데이터가 시작하는지 사용자분이 인지하시고 식에서 이용하셔야 합니다. 엑셀객체의 GetColCount와 GetRowCount는 데이터가 적혀진 영역에서 행과 열의 수를 리턴합니다. 즉 가장 좌측상단의 셀에서 우측하단의 셀까지를 영역으로 하여 행과 열의 수가 반환됩니다. 첨부된 그림과 같이 데이터가 적혀진 경우 GetColCount는 10, GetRowCount는 2입니다. 한 행에 10개의 셀이 사용되었고 열에서는 2개씩이라는 의미입니다. 즐거운 하루되세요 > 곰탈 님이 쓴 글입니다. > 제목 : Excel로부터 데이터 불러와서 배열에 저장 > 예스스팟에서 Excel에 저장한 값을 읽어와서 배열에 저장하는 로직을 부탁드리고자 합니다. Excel에는 하나의 시트에 두 컬럼에 데이터를 넣을텐데, 첫번째 칼럼은 숫자이고 두번째 칼럼은 문자열입니다. 열의 개수는 유동적이며 스팟에서 Excel 데이터를 불러올 때 현재 열 개수를 확인해야 합니다.