java 내보내기 csv 방법 설명

1843 단어 java 내보내기 csv
우선, ibatis의 sql 문장을 통해 얻을 기록을 조회하여 목록에 저장합니다

List<?> results = this.reportService.getArrayBeanReportDataSource(super.getQuery_sql_csv(), query_obj);
이런 상황에서 우리는 공공 방법을 써야 하기 때문에 사용합니까?지정된 유형을 사용하여 치수를 지정하지 않았습니다.
그래서 List에서 추출한 객체의 속성 값을 반사하여 사용해야 합니다.

String[] Column = super.getReport_data_column().split(",");
이 문장은 스프링의 주입을 통해 필요한 속성을 얻을 수 있습니다.

StringBuffer sb = new StringBuffer();
Field[] fields = query_obj.getClass().getDeclaredFields();
getDeclaredFields()를 통해객체에 선언된 속성을 가져오는 방법입니다.
그리고 우선 필요한 속성과 모든 속성을 비교한다. 왜냐하면 뒤의 조작은 필요한 속성에서 이루어지기 때문이다. 비교가 없으면 내보낸 CSV 파일에 빈 열이 많이 나타나기 때문에 이 이치는 쉽게 이해할 수 있다.또한 성명의 속성은private라고 성명할 때 setAccessible () 방법을 이용하여 그 값을 추출할 수 있도록 설정해야 한다는 것을 주의해야 한다.
마지막으로 순환을 이용하여 각 열의 값을 쉼표로 구분하여 파일에 쓰면 OK입니다.

for(Object object : results) {
    try{
        Field.setAccessible(fields, true);
        for(int i=0;i<Column.length;i++){
            for(int j=0;j<fields.length;j++){
                if(fields[j].getName().equals(Column[i])){
                    if(i!=(Column.length-1)){
                                sb.append((fields[j].get(object)==null?"":fields[j].get(object))+",");
                                break;
                    }else{
                                sb.append((fields[j].get(object)==null?"":fields[j].get(object))+"\r
");
                                break;
                    }
                    }
                    }
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }  

좋은 웹페이지 즐겨찾기