基于java一个简单的将jsp界面数据以excel文件导出方法的实现

有的时候网页需要导出页面所有的数据为excel文件,那么问题来了,方法千千万万,要怎么做呢?

我在这里使用的是Strust接收jsp界面action请求,后台调用数据库数据输入文件的方法,如果你不知道怎么导入Strust,

请百度。。。话不多说直接撸代码:

 

没错,jsp页面的代码很简单。。。当前我的网页调用的是数据库某个表的数据,jsp界面是这样的:

基于java一个简单的将jsp界面数据以excel文件导出方法的实现_第1张图片

也就三个数据,那接下来是Strust的配置:

基于java一个简单的将jsp界面数据以excel文件导出方法的实现_第2张图片

看清楚,这里我调用的是

这个value=do很重要,一般很多人都会漏掉!

下面是web.xml里的配置:

基于java一个简单的将jsp界面数据以excel文件导出方法的实现_第3张图片

这里需要提一下,代码中*.do接收的拦截是*.do,这意味着jsp的action要写成xxx.do

本文章开头有写,可以返回去看。

接下来就是方法了,文件名为WriteExcelAction.java,直接放代码,有点长以免你写的蛋疼。

package com.red.action;

import java.io.IOException;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 * 第三方插件导出Excel
 * @author Dylan
 */
public class WriteExcelAction extends ActionSupport {
  
	
	HttpServletRequest request = ServletActionContext.getRequest();
    HttpServletResponse response = ServletActionContext.getResponse();

    public void writeExcel() throws RowsExceededException, WriteException, IOException {
    	OutputStream os = response.getOutputStream();// 取得输出流
        response.reset();// 清空输出流
        response.setHeader("Content-disposition", "attachment; filename=diseaseList.xls");// 设定输出文件头
        response.setContentType("application/msexcel");// 定义输出类型

        WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件
        String tmptitle = "测试数据"; // 标题    	       	        
        WritableSheet sheet = wbook.createSheet("病症名单",0);//或者rwb.getSheet(0)获取第一个区域
        
       
        try {
            //2. 连接数据库
            Connection conn=null;
            PreparedStatement ps = null;
            ResultSet rs = null;
            
            conn=DbUtil.getConn();
            String sql = "select disCode,disName from disease";
            
            ps = conn.prepareStatement(sql);// SQL预处理 
            rs = ps.executeQuery();
            //ResultSet是数据库中的数据,将其转换为List类型
            List list = new ArrayList();
            while(rs.next()){
            	Disease stu = new Disease();
                stu.setDisCode(rs.getInt("disCode"));
                stu.setDisName(rs.getString("disName"));
                list.add(stu);
            }
            ps.close(); 
            conn.close();         
            for(int i = 0; i

就是这样,这么一来就大功告成,回到jsp界面点击之前做好的按钮看看结果:

基于java一个简单的将jsp界面数据以excel文件导出方法的实现_第4张图片

这里我选择打开 ,看看里面是否和jsp显示数据库的数据一致:

 

基于java一个简单的将jsp界面数据以excel文件导出方法的实现_第5张图片

搞定!数据库和get,set的方法我就不贴了,因人而异!就是这么简单

如果碰到404等问题的,可以去看看我之前写的解决方法:引入Strust2后jsp无法调用action报错404的问题

转载记得署名哦。

你可能感兴趣的:(MyEclipse笔记)