2016-06-11 4 views
1

그루비의지도를 사용하여 Excel 파일을 작성하려고합니다. 이는 그루비에서 수행 할 수있는 방법그루비의지도를 사용하여 Excel을 작성하십시오.

//writing data in the map 
Map < String, Object[] > empinfo = new TreeMap < String, Object[] >(); 
    empinfo.put("1", new Object[] {"EMP ID", "EMP NAME", "DESIGNATION" }); 
    empinfo.put("2", new Object[] {"", "Gopal", "Technical Manager" }); 
    empinfo.put("7", new Object[] {"tp02", "Manisha", "Proof Reader" }); 
    empinfo.put("4", new Object[] {"tp03", "", "Technical Writer" }); 
    empinfo.put("5", new Object[] {"tp04", "Satish", "Technical Writer" }); 
    empinfo.put("6", new Object[] {"tp05", "Krishna", "" }); 

    //Iterate over data and write to sheet 
    Set <String> keyid = empinfo.keySet(); 
    int rowid = 0; 
    for (String key : keyid) 
    { 
    row = spreadsheet.createRow(rowid++); 
    Object [] objectArr = empinfo.get(key); 
    int cellid = 0; 
    for (Object obj : objectArr) 
    { 
     Cell cell = row.createCell(cellid++); 
     cell.setCellValue((String)obj); 
    } 
    } 

아래에 주어진 자바에서 내가 내지도에 값을 입력하고? 나는 groovy에 익숙하지 않으며 도움을 주시면 대단히 감사하겠습니다.

+0

당신이하고있는 일을 정확하게 수행 할 수 있어야합니다 ... 질문이 무엇입니까? 관용적 인 그루비에서 이것을 다시 쓰자? 너 뭐 해봤 니? 어디에서 문제가 있습니까? –

+0

예 groovy로 작성하고 싶습니다. 현재 나는 이와 같은 것을 시도하고있다. 'def empinfo = [:]; empinfo.put ("EMP ID", "EMP 이름", "지정자"); empinfo.put ("", "Gopal", "기술 관리자"); empinfo.put ("tp02", "Manisha", "Proof Reader"); empinfo.put ("tp03", "", "기술 작성자"); empinfo.put ("tp04", "Satish", "Technical Writer"); empinfo.put ("tp05", "Krishna", ""); ' – user3331923

+0

다음 오류가 발생했습니다. '잡힌 : groovy.lang.MissingMethodException : 메소드의 서명이 없습니다. java.util.LinkedHashMap.put() (ELC ID, EMP NAME, DESIGNATION) 가능한 해결책 : put (java.lang.Object, java.lang (java.lang.String, java.lang.String, java.lang.String) groovy.lang.MissingMethodException : 메소드의 서명이 없습니다. java.util.(). LinkedHashMap.put()은 인수 타입에 적용 가능합니다 : (java.lang.String, java.lang.String, java.lang.String) values ​​: [..... ' – user3331923

답변

1

groovy가 배열 선언 구문을 지원하지 않기 때문에 groovy.lang.MissingMethodException이됩니다. 여기

Groovy map declaration

Groovy array declaration

는 트리 맵을

def empinfo = new TreeMap<String, Object[]>(); 

empinfo["1"] = ["EMP ID", "EMP NAME", "DESIGNATION"] as Object[]; 
empinfo["2"] = ["", "Gopal", "Technical Manager"] as Object[]; 
empinfo["7"] = ["tp02", "Manisha", "Proof Reader"] as Object[]; 
empinfo["4"] = ["tp03", "", "Technical Writer"] as Object[]; 
empinfo["5"] = ["tp04", "Satish", "Technical Writer"] as Object[]; 
empinfo["6"] = ["tp05", "Krishna", ""] as Object[]; 

또는

를 선언 할 수있는 방법입니다
TreeMap empinfo = [ 
    "1": ["EMP ID", "EMP NAME", "DESIGNATION"] as Object[], 
    "2": ["", "Gopal", "Technical Manager"] as Object[], 
    "7": ["tp02", "Manisha", "Proof Reader"] as Object[], 
    "4": ["tp03", "", "Technical Writer"] as Object[], 
    "5": ["tp04", "Satish", "Technical Writer"] as Object[], 
    "6": ["tp05", "Krishna", ""] as Object[] 
]; 
0

있습니다 더 고양이 피부 방법 중 하나 이상 :

// writing data in the map 
def empinfo = [ 
    "1" : ["EMP ID", "EMP NAME", "DESIGNATION"], 
    "2" : ["", "Gopal", "Technical Manager"], 
    "3" : ["tp02", "Manisha", "Proof Reader"], 
    "4" : ["tp03", "", "Technical Writer"], 
    "5" : ["tp04", "Satish", "Technical Writer"], 
    "6" : ["tp05", "Krishna", ""] 
] 

short rowid = 0 
empinfo.each { key, value -> 
    row = spreadsheet.createRow(rowid++) 
    short cellid = 0 
    value.each { item -> 
     def cell = row.createCell(cellid++) 
     cell.setCellValue(item) 
    } 
} 

"멋져요"를 얼마나 갖고 싶은가요?

+0

'rowid'의 데이터 타입을 변경했습니다. POI는 int를 받아들이지 않기 때문에'cellid'를'short'로 설정하십시오. – ChrLipp