jsp 표를 excel로 내보내기

방법1:jxl
jxl을 다운로드합니다.jar, 공사에 가입합니다.
 
import java.io.*;
import jxl.*;
import jxl.write.*;

import beans.Student;

import java.util.ArrayList;

public class Excel {       
         //list , filename excel 
         public static void ExportExcel(ArrayList list, String filename) {

               try {

                   WritableWorkbook book = Workbook.createWorkbook(new File("filename")); 
                   WritableSheet sheet = book.createSheet("sheet1", 0);

                   // ,  , 
                   Label label1 = new Label(0, 0 , " "); // 
                   Label label2 = new Label(1,  0, " ");  // 
           
                   // sheet1 
                   sheet.addCell(label1);
                   sheet.addCell(label2);

                    if (list.size != 0) {
                           Iterator it = list.iterator();
                           int i = 1; // 
                          while (it != null && it.next) {
                                 Student stu = (Student) it.next();   //list 
                                  Label l1 = new Label(0, i, stu.getSno());
                                  Label l2 = new Label(1, i, stu.getName());
                                  sheet.addCell(l1);
                                 sheet.addCell(l2);
                                  i++;
                          }
                          book.write();
                          book.close();
                   }

             } catch (Exception e) {
                       System.out.println(e.getMessage());
             }
      }
}

 
방법 2:poi
포이 관련 패키지 다운로드, 최신 포이 3.8-beta3-20110606.jar, F:poi-3.8-beta3-20110606.jar와 poi-excelant-3.8-beta3-20110606.jar 프로젝트 가입
내보내기 클래스 쓰기: 내보내기.java, 내보낼 정보 목록
public class Export {
	
	// 
	public void buildStudentExcel(List list, String sheetname, OutputStream out) {
				
		HSSFWorkbook wb = new HSSFWorkbook();
		HSSFSheet sheet1 = wb.createSheet("sheet1");
		HSSFRow row = sheet1.createRow((short) 0);
		row.createCell(0).setCellValue(" ");
		row.createCell(1).setCellValue(" ");
		row.createCell(2).setCellValue(" ");
		row.createCell(3).setCellValue(" ");
		row.createCell(4).setCellValue(" ");
		row.createCell(5).setCellValue(" ");
		row.createCell(6).setCellValue(" ");
		row.createCell(7).setCellValue(" ");
		row.createCell(8).setCellValue(" ");
		row.createCell(9).setCellValue(" ");
		row.createCell(10).setCellValue(" ");

		
		for (int i = 0; i < list.size(); i++) {
			Student s = (Student)list.get(i);
			row=sheet1.createRow((short)(i+1));
			row.createCell(0).setCellValue(s.getKahao());
			row.createCell(1).setCellValue(s.getXuehao());
			row.createCell(2).setCellValue(s.getXingming());
			row.createCell(3).setCellValue(s.getXingbie());
			row.createCell(4).setCellValue(s.getXueyuan());
			row.createCell(5).setCellValue(s.getZhuanye());
			row.createCell(6).setCellValue((s.getPks() == 0) ? " " : " ");
			row.createCell(7).setCellValue((s.getXieyishu() == 0) ? " " : " ");
			row.createCell(8).setCellValue(s.getRiqi());
			row.createCell(9).setCellValue(s.getHuojiang());
			row.createCell(10).setCellValue(s.getBeizhu());
		}
		try {
			out.flush();
			wb.write(out);
			out.close();		

		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("Out  is  closed ");
		}
	}	
그 다음은 데이터를 내보내는 jsp 페이지입니다.
<%@ page contentType="application/vnd.ms-excel" language="java" 
	import="java.util.*,edu.sdau.excelout.Export" pageEncoding="UTF-8" %>
<%@page import="edu.sdau.bean.Student"%>
<%
	response.setHeader("Content-Disposition","attachment;filename=exportdata.xls");// 
	response.setContentType("application/vnd.ms-excel");
	
	Export  ex = new Export(); 
	List list = (List)session.getAttribute("exportlist");
	ex.buildStudentExcel(list, "exportdata.xls",response.getOutputStream());
	out.clear();
	out=pageContext.pushBody();
%>
주의: <%> 외에 빈칸을 포함하는 것은 없습니다.만약 <%> 사이에 아무런 빈칸도 남기지 않는다면, 마지막 두 문장은 빨간색입니다. 만약 빈칸이 있다면, 위와 같이 이 두 문장을 추가해야 합니다. 그렇지 않으면 get Output Stream ()has been called by response 이상을 보고합니다.내보낼 데이터를 꺼내서 세션에 넣었습니다.

좋은 웹페이지 즐겨찾기