前半部分是jdbc操作,后面就是对excel操作了,这个不用非要看什么代码吧……

解决方案 »

  1.   

    用poi实现的
    我在servlet添加了如下主要代码,当访问到导出页面时,servlet操作DAO取出数据,然后执行下列代码
    创建表格,写入数据,最后还会弹出个对话框,问你是否要打开或保存excel
    String fname ="name";//Excel文件名
    OutputStream os = response.getOutputStream();//取出输出流
    response.reset();//清空输出流
    //设定输出文件头,该方法有两个参数,分别表示应大头的名字和值
    response.setHeader("Content-disposition", "attachment; filename="+ fname + ".xls");

    HSSFWorkbook wb = new HSSFWorkbook();
    HSSFSheet sheet = wb.createSheet("传捷速递");
    wb.setSheetName(0, "订单信息");
    HSSFRow row = sheet.createRow((int)0);
    sheet.createFreezePane(0, 1);////???Creates a split
                    //设置列宽
    sheet.setColumnWidth(1, 3000);
    sheet.setColumnWidth(7, 8000);
    sheet.setColumnWidth(8, 4000);
    sheet.setColumnWidth(11, 3000);
    sheet.setColumnWidth(12, 8000);
                    //设置第0行,n列的值
    cteateCell(wb,row,(int)0,"订单编号");
    cteateCell(wb,row,(int)1,"发货时间");
                                     .
                                     .
                                     .
                                     .
    cteateCell(wb,row,(int)n,"发货人"); try{
    for(int i=0;i<m;i++){
                          //循环添加m行n列的值,value是要添加的各种值
    HSSFRow row2 =sheet.createRow((int)(i+1));
    cteateCell(wb,row2,0,value);
    cteateCell(wb,row2,1,value);
                                               .
                                               .
                                               .
    cteateCell(wb,row2,n,value);
    }
    }catch(Exception e){
    e.printStackTrace();
    }
    wb.write(os);
    os.flush();
    os.close();
    }
    /**
     * 设置单元格的值及其样式
     * @param wb
     * @param row
     * @param col
     * @param val
     */
    private void cteateCell(HSSFWorkbook wb,HSSFRow row,int col,String val)
    {
    HSSFCell cell = row.createCell(col);
    cell.setCellValue(new HSSFRichTextString(val));
    HSSFCellStyle cellstyle= wb.createCellStyle();
    cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);
    cell.setCellStyle(cellstyle);
    }
    }