JavaWeb에서 Excel 파일을 내보내고 다운로드 상자를 팝업합니다.
Java 웹 개발에서 보고서와 자주 관련된다. 최근 프로젝트에서 데이터베이스에 있는 데이터를 표로 표시하고 Excel 파일로 내보내는 기능을 실현해야 한다.
2. 관련jar 패키지
POI를 사용하면 Excel 가져오기 및 내보내기 문제를 해결할 수 있습니다. POI 다운로드 주소:
poi-3.6-20091214.jar
3. 핵심 코드
먼저 상술한jar 패키지를 가져옵니다.
excel을 생성할 때 일반적인 데이터 원본 형식은 List입니다. 다음은 Excel 형식을 생성하는 코드를 붙입니다.
/**
* Excel
*/
// 1. workbook, Excel
HSSFWorkbook wb = new HSSFWorkbook();
// 2. workbook sheet, Excel sheet
HSSFSheet sheet = wb.createSheet("XXX ");
// 3. sheet 0 , poi excel short
HSSFRow row = sheet.createRow((int) 0);
// 4. , ,
HSSFCellStyle style = wb.createCellStyle();
//
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//
HSSFCell cell = row.createCell(0);
cell.setCellValue(" 1");
cell.setCellStyle(style);
cell = row.createCell(1);
cell.setCellValue(" 2");
cell.setCellStyle(style);
cell = row.createCell(2);
cell.setCellValue(" 3");
cell.setCellStyle(style);
cell = row.createCell(3);
cell.setCellValue(" 4");
cell.setCellStyle(style);
cell = row.createCell(4);
cell.setCellValue(" 5");
cell.setCellStyle(style);
excel 형식을 생성한 후 excel에 데이터를 쓰려면 다음과 같이 하십시오.
// Excel
for (int i = 0; i < lists.size(); i++) {
row = sheet.createRow((int) i + 1);
List list= lists.get(i);
// ,
row.createCell(0).setCellValue(list.getXXX());
row.createCell(1).setCellValue(list.getXXX());
row.createCell(2).setCellValue(list.getXXX());
row.createCell(3).setCellValue(list.getXXX());
row.createCell(4).setCellValue(list.getXXX());
}
이후에 생성된 Excel이 흐름으로 출력됩니다.* 다운로드 상자가 팝업되지 않음
FileOutputStream out =new FileOutputStream("E:/XXX.xls");
wb.write(out);
out.close();
* 다운로드 상자 팝업
String fileName = "XXX ";
ByteArrayOutputStream os = new ByteArrayOutputStream();
wb.write(os);
byte[] content = os.toByteArray();
InputStream is = new ByteArrayInputStream(content);
// response ,
res.reset();
res.setContentType("application/vnd.ms-excel;charset=utf-8");
res.setHeader("Content-Disposition", "attachment;filename="
+ new String((fileName + ".xls").getBytes(), "iso-8859-1"));
ServletOutputStream out = res.getOutputStream();
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(is);
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
// Simple read/write loop.
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
위 작업을 완료하면 다른 페이지로 이동할 수 있습니다.또한 POI는 Excel 업로드 해석을 웹 페이지에 표시할 수 있습니다. 이 또 다른 글은 요약입니다. 기대하세요!
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JavaWeb 파일 다운로드 기능 인스턴스 코드업무 중에 만난 파일을 다운로드하는 기능은 스스로 추출합니다. 코드가 간단합니다. 여러분에게 도움이 되었으면 합니다. 자, 말이 많지 않습니다. 코드를 올리십시오! 이상은 본고의 JavaWeb 파일을 다운로드한 코드...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.