본문 바로가기

개발중/Java

java 에서 data → excel 파일

728x90
반응형

Java 에서 생성한 Data를 Excel 로 만들어서 내보내려고 한다.

POI를 이용하기 때문에 pom.xml 에 아래 코드를 추가해 주었다

<!-- http://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>

 


 

아래 코드를 실행 결과 

Style이 적용이 안되어서 적용을 시켜보아야겠다.

 

    public void ExcelDownload(List<DataLogVo> list){
    	
        // Workbook 생성
        Workbook xlsWb  = new HSSFWorkbook(); // Excel 2007 이전 버전
        Workbook xlsxWb = new XSSFWorkbook(); // Excel 2007 이상
 
        // *** Sheet-------------------------------------------------
        // Sheet 생성
        Sheet sheet1 = xlsWb.createSheet("firstSheet");
        
        // 컬럼 너비 설정
        sheet1.setColumnWidth(0, 10000);
        sheet1.setColumnWidth(1, 5000);
        sheet1.setColumnWidth(2, 5000);
        sheet1.setColumnWidth(3, 7000);
        sheet1.setColumnWidth(4, 7000);
        sheet1.setColumnWidth(5, 8000);
        sheet1.setColumnWidth(6, 8000);
        sheet1.setColumnWidth(7, 5000);
        sheet1.setColumnWidth(8, 5000);
        sheet1.setColumnWidth(9, 5000);
        // ----------------------------------------------------------
        
        // *** Style--------------------------------------------------
        // Cell 스타일 생성
        CellStyle cellStyle = xlsxWb.createCellStyle();
         
        // 줄 바꿈
        cellStyle.setWrapText(true);
         
        //  Cell 색깔, 무늬 채우기
        //  cellStyle.setFillForegroundColor(HSSFColor.LIME.index);
        //  cellStyle.setFillPattern(CellStyle.BIG_SPOTS);
         
        Row row = null;
        Cell cell = null;
        //----------------------------------------------------------
        // 첫 번째 줄
        row = sheet1.createRow(3);
        
        // 첫 번째 줄에 Cell 설정하기-------------
        cell = row.createCell(0);
        cell.setCellValue("제 목");
        
        cell = row.createCell(1);
        cell.setCellValue("주 제 (대)");
        
        cell = row.createCell(2);
        cell.setCellValue("주 제 (중)");
        
        cell = row.createCell(3);
        cell.setCellValue("출 처");
        
        cell = row.createCell(4);
        cell.setCellValue("수집 일시");
        
        cell = row.createCell(5);
        cell.setCellValue("스팸 카테고리");
        
        cell = row.createCell(6);
        cell.setCellValue("감 성");
        
        cell = row.createCell(7);
        cell.setCellValue("작업자");
        
        cell = row.createCell(8);
        cell.setCellValue("수정일");
        
        // cell.setCellStyle(cellStyle); // 셀 스타일 적용
        //---------------------------------
        
        int rowNum = 5;
        for( DataLogVo vo : list ) {
        	
        	  int x = 0; 
        	  row = sheet1.createRow(rowNum++);
        	  
              cell = row.createCell(x++);
              cell.setCellValue(vo.getDml_title());

              cell = row.createCell(x++);
              cell.setCellValue(vo.getI_p_topic());
              
              cell = row.createCell(x++);
              cell.setCellValue(vo.getI_topic());
              
              cell = row.createCell(x++);
              cell.setCellValue(vo.getDml_sitename());
              
              cell = row.createCell(x++);
              cell.setCellValue(vo.getDml_crawlstamp());
              
              cell = row.createCell(x++);
              cell.setCellValue(vo.getDml_spam_category() + " → " + vo.getDml_update_spam_category());
              
              cell = row.createCell(x++);
              cell.setCellValue(vo.getDml_trend() + " → " + vo.getDml_update_trend());
              
              cell = row.createCell(x++);
              cell.setCellValue(vo.getSu_seq());
              
              cell = row.createCell(x++);
              cell.setCellValue(vo.getDml_update_date());
              
        }
 
        // excel 파일 저장
        try {
        	String home = System.getProperty("user.home");
            File xlsFile = new File( home +"/Downloads/Lucy_Measuer_DataLog.xls");
            
            FileOutputStream fileOut = new FileOutputStream(xlsFile);
            xlsWb.write(fileOut);
            
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            
        } catch (IOException e) {
            e.printStackTrace();
        }
         
    }

 

 

 

728x90
반응형

'개발중 > Java' 카테고리의 다른 글

String,StringBuffer, StringBuilder 차이점  (0) 2021.02.24
Demon 만들기 (API 사용)  (0) 2021.02.23
mysql timeStamp 자바에서 날짜로 만들기  (0) 2021.01.26
StringUtils.isBlank()  (0) 2021.01.07
자바 명명 규칙  (0) 2021.01.07