jsp表格导出到excel中

本文介绍了两种方法将jsp表格数据导出到Excel。方法一是利用jxl.jar库,方法二是使用 poi-3.8-beta3-20110606.jar 和 poi-excelant-3.8-beta3-20110606.jar。在导出过程中,关键操作是将待导出信息存储在List中并进行处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


方法一: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());
             }
      }
}


 

方法二:poi

下载poi相关的包,我下载的是最新的poi-3.8-beta3-20110606.jar,将F:poi-3.8-beta3-20110606.jar和poi-excelant-3.8-beta3-20110606.jar加入工程中

写一个导出类:Export.java,,将要导出的信息存在List中

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();
%>
注意:<% %>之外不要有任何东西,包括空格。如果<% %>之间也不留任何空格的话,最后两句红色的可以不要,如果有空格,如上面,需要加上这两句红色 的语句,否则会报getOutputStream() has been called by response异常。我是取出要导出的数据之后,直接放到session中了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值