一定要用POI吗?
我用的时jexl
自己写了一个通过流生成excel表的Bean,然后通过传进两个参数 ,一个是流response.getOutputStream()
另一个是通过别的Bean中得到数组(也就是要道入excel的数据)来生成表
<%@page import="forall.makeexcel" %>
<%
 response.reset();
 response.setContentType("application/vnd.ms-excel");
 Test.writeExcel(response.getOutputStream(),table);
%>
import java.io.*;
import jxl.*;
import jxl.write.*;
import jxl.format.*;
import java.util.*;
import java.awt.Color;public class makeexcel{
  public static void writeBook(OutputStream out,String[][] table){
    WritableWorkbook workbook=null;
    WritableSheet sheet=null;
    Label label;
    //生成一张新表,到给定的输出流中
    try{
      workbook = Workbook.createWorkbook(out);
      sheet=workbook.createSheet("Sheet1",0);
    }catch(Exception e){System.err.println(e);System.out.println("Create WorkBook throw an err");}
    //将数组写进表中
    try{
      for(int i=0;i<table.length;i++){
        for(int j=0;j<table[0].length;j++){
          if(table[i][j].equals("&nbsp")){
            label=new Label(j,i,"");
          }else{label=new Label(j,i,table[i][j]);}
          sheet.addCell(label);
        }
      }
      workbook.write();
      workbook.close();
    }catch(Exception e){System.err.println(e);System.out.println("Write book throw an err");}
  }
}