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 |