728x90
반응형
package
com.exam.common.util;
import
java.io.File;
import
java.io.FileNotFoundException;
import
java.io.FileOutputStream;
import
java.io.IOException;
import
java.util.List;
import
org.apache.poi.hssf.usermodel.HSSFCell;
import
org.apache.poi.hssf.usermodel.HSSFCellStyle;
import
org.apache.poi.hssf.usermodel.HSSFFont;
import
org.apache.poi.hssf.usermodel.HSSFRow;
import
org.apache.poi.hssf.usermodel.HSSFSheet;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook;
import
org.apache.poi.hssf.util.HSSFColor;
import
com.exam.domain.user.User;
public
class
ExcelUtils {
private
HSSFWorkbook workBook;
private
String filePath;
private
String excelFileName;
/*
* 호출 메소드
* writeData(filePath, fileName, ObjectList);
*/
public void writeData(String filePath, String fileName, List<user> userList){
this.filePath = filePath;
excelFileName = fileName + ".xls";
try {
FileOutputStream fout = setFile(filePath, excelFileName);
HSSFWorkbook workBook = createExcel(userList);
workBook.write(fout);
fout.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/*
* 핵심 프로세스
*/
public
HSSFWorkbook createExcel(List<user> userList){
// Excel Write
workBook =
new
HSSFWorkbook();
HSSFSheet sheet = workBook.createSheet(
"UserList"
);
// ## Font Setting
// @HSSFFont : 폰트 설정
// - FONT_ARIAL : 기본
HSSFFont font = workBook.createFont();
font.setFontName(HSSFFont.FONT_ARIAL);
// ## Title Style Setting
// @HSSFColor : 셀 배경색
// - GREY_$_PERCENT : 회색 $ 퍼센트
// @HSSFCellStyle
// - ALIGN_$ : $ 쪽 정렬
HSSFCellStyle titleStyle = workBook.createCellStyle();
titleStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
titleStyle.setFillPattern(HSSFCellStyle.ALIGN_LEFT);
titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
titleStyle.setFont(font);
// ## Row Create
// ? 가로열 생성
HSSFRow row = sheet.createRow((
short
)
0
);
// ## Title Cell Create
// @row.createCell((short)n) : n번째 셀 설정
// @setCellValue(String) : n 번째 셀의 내용
// @setCellStyle(style) : n 번째 셀의 스타일
HSSFCell cell_0 = row.createCell((
short
)
0
);
cell_0.setCellValue(
"번호"
);
cell_0.setCellStyle(titleStyle);
HSSFCell cell_1 = row.createCell((
short
)
1
);
cell_1.setCellValue(
"E-Mail"
);
cell_1.setCellStyle(titleStyle);
HSSFCell cell_2 = row.createCell((
short
)
2
);
cell_2.setCellValue(
"Password"
);
cell_2.setCellStyle(titleStyle);
HSSFCell cell_3 = row.createCell((
short
)
3
);
cell_3.setCellValue(
"Name"
);
cell_3.setCellStyle(titleStyle);
HSSFCell cell_4 = row.createCell((
short
)
4
);
cell_4.setCellValue(
"Age"
);
cell_4.setCellStyle(titleStyle);
HSSFCell cell_5 = row.createCell((
short
)
5
);
cell_5.setCellValue(
"JoinDate"
);
cell_5.setCellStyle(titleStyle);
// ## Content Style Setting
HSSFCellStyle contentStyle = workBook.createCellStyle();
contentStyle.setFont(font);
// Content align : center
HSSFCellStyle styleCenter = workBook.createCellStyle();
styleCenter.setAlignment(HSSFCellStyle.ALIGN_CENTER);
styleCenter.setFont(font);
// ObjectList 가 비어있으면 제목만 출력 후 종료
if
(userList ==
null
)
return
workBook;
// ObjectList 엑셀에 출력
for
(
int
i =
0
; i < userList.size(); i++){
// 1번째 행은 제목이니 건너 뜀
row = sheet.createRow((
short
)(i+
1
));
User user = userList.get(i);
cell_0 = row.createCell((
short
)
0
);
cell_0.setCellValue(user.getNo());
cell_0.setCellStyle(styleCenter);
cell_1 = row.createCell((
short
)
1
);
cell_1.setCellValue(user.getEmail());
cell_1.setCellStyle(styleCenter);
cell_2 = row.createCell((
short
)
2
);
cell_2.setCellValue(user.getPassword());
cell_2.setCellStyle(styleCenter);
cell_3 = row.createCell((
short
)
3
);
cell_3.setCellValue(user.getName());
cell_3.setCellStyle(styleCenter);
cell_4 = row.createCell((
short
)
4
);
cell_4.setCellValue(user.getAge());
cell_4.setCellStyle(styleCenter);
cell_5 = row.createCell((
short
)
5
);
cell_5.setCellValue(user.getDate());
cell_5.setCellStyle(styleCenter);
}
return
workBook;
}
private
FileOutputStream setFile(String filePath, String excelFileName)
throws
FileNotFoundException{
File dir =
new
File(filePath);
if
(!dir.exists()) dir.mkdirs();
FileOutputStream fout =
new
FileOutputStream(filePath+excelFileName);
return
fout;
}
}
</user></user>
728x90
반응형
'JAVA > EXCEL컨트롤관련' 카테고리의 다른 글
POI 열너비 행높이 (0) | 2015.11.12 |
---|---|
[공유] POI Quick Guide (0) | 2015.11.12 |
병합된 셀의 스타일( border) (0) | 2015.11.12 |
[ JAVA ] 자바 POI 로 xls,xlsx 파일 읽기 (0) | 2015.10.22 |
width (0) | 2015.09.04 |
셀 합치기 (0) | 2015.09.04 |
Excel - POI (0) | 2015.03.09 |
[Java] poi 를 이용하여 excel 파일 쓸때 CellStyle 속성값 변경하여 셀 배경색 지정하기 (0) | 2014.11.27 |