用 poi 或者 jxl
搜一下吧,一大堆了

解决方案 »

  1.   

    http://www.pcbookcn.com/article/2365.htm
      

  2.   

    这些我看过,只是想知道怎样在jsp/servlet中导出,试过一些方法,都是动态打开excel的,我想要的是那种类似下载形式的,就是说生成一个excel文件后下载到客户端!
    同样感谢!
      

  3.   

    如果是标准表格,你可以导出为csv文件,同样是Excel文件。
      

  4.   

    大家帮忙呀!我找了很多的代码都没有讲servlet和jsp上的使用方法.
      

  5.   

    test.html
    --------------------------------------------------------------------------
    <html>
    <body>
    <input type=button value="下载xls文件" onclick="window.open('second.jsp', '', 'dependent,height=300,width=300,resizable');">
    </body>
    </html>second.jsp
    --------------------------------------------------------------------------
    <%@ page contentType="text/html;charset=GBK" %>
    <%@ page import="java.io.*" %>
    <%@ page import="jxl.*" %>
    <%@ page import="jxl.write.*" %>
    <%@ page import="jxl.format.*" %>
    <%
    OutputStream os = response.getOutputStream();
    response.setContentType("application/msexcel");
    response.setHeader("Content-disposition","attachment; filename=Excel1.xls");
    //response.setHeader("Content-disposition","attachment; filename=" + fname + ".xls");//File tempFile=new File("f:\\output.xls");
    WritableWorkbook workbook = Workbook.createWorkbook(os);
    WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0); //一些临时变量,用于写到excel中
    jxl.write.Label l=null;
    jxl.write.Number n=null;
    jxl.write.DateTime d=null; //预定义的一些字体和格式,同一个Excel中最好不要有太多格式
    WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLUE); 
    WritableCellFormat headerFormat = new WritableCellFormat (headerFont); WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED); 
    WritableCellFormat titleFormat = new WritableCellFormat (titleFont); WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); 
    WritableCellFormat detFormat = new WritableCellFormat (detFont); NumberFormat nf=new NumberFormat("0.00000");  //用于Number的格式
    WritableCellFormat priceFormat = new WritableCellFormat (detFont, nf); DateFormat df=new DateFormat("yyyy-MM-dd");//用于日期的
    WritableCellFormat dateFormat = new WritableCellFormat (detFont, df); //剩下的事情,就是用上面的内容和格式创建一些单元格,再加到sheet中
    l=new Label(0, 0, "用于测试的Excel文件", headerFormat);
    sheet.addCell(l); //add Title
    int column=0;
    l=new Label(column++, 2, "标题", titleFormat);
    sheet.addCell(l);
    l=new Label(column++, 2, "日期", titleFormat);
    sheet.addCell(l);
    l=new Label(column++, 2, "货币", titleFormat);
    sheet.addCell(l);
    l=new Label(column++, 2, "价格", titleFormat);
    sheet.addCell(l); //add detail
    int i=0;
    column=0;
    l=new Label(column++, i+3, "标题 "+i, detFormat);
    sheet.addCell(l);
    d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);
    sheet.addCell(d);
    l=new Label(column++, i+3, "CNY", detFormat);
    sheet.addCell(l);
    n=new jxl.write.Number(column++, i+3, 5.678, priceFormat);
    sheet.addCell(n); i++;
    column=0;
    l=new Label(column++, i+3, "标题 "+i, detFormat);
    sheet.addCell(l);
    d=new DateTime(column++, i+3, new java.util.Date(), dateFormat);
    sheet.addCell(d);
    l=new Label(column++, i+3, "SGD", detFormat);
    sheet.addCell(l);
    n=new jxl.write.Number(column++, i+3, 98832, priceFormat);
    sheet.addCell(n); //设置列的宽度
    column=0;
    sheet.setColumnView(column++, 30);
    sheet.setColumnView(column++, 20);
    sheet.setColumnView(column++, 10);
    sheet.setColumnView(column++, 20); workbook.write();
    os.flush();workbook.close();
    os.close();
    //out.print("<h2>已生成 .xls文件</div>");
    %>
      

  6.   

    用JSP啊,
    response.setHeader("Content-disposition","attachment; filename="+excel_name+".xls");