各位高手好:
如何才能在jsp页数据导出到EXCEL时要动态生成EXCEL文件名。

解决方案 »

  1.   

    晕,系统时间呀,或者随机生成字符组合.
    取系统时间最方便~
    java.util.Date date = new java.util.Date();
    java.text.SimpleDateFormat sd = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
    String fileName = sd.format(date);
      

  2.   

    如何才能在
    把jsp页数据导出到EXCEL时
    动态生成EXCEL文件名。
      

  3.   

    WritableWorkbook book = Workbook.createWorkbook(out);
    WritableSheet sheet = book.createSheet(SheetName, 0); //生成工作表,参数0表示这是第一页
    Label label;
    OraDAOFactory OraDAO = new OraDAOFactory();
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    ResultSetMetaData rsmd;
    StringBuffer select = new StringBuffer();//存显示字段
    int numCols = 0;//显示字段个数
    int i = 0; //单元格行
    int j = 0; //单元格列
    try {
    conn = OraDAO.getConnection();
    jxl.write.WritableFont wfc = new jxl.write.WritableFont(
    WritableFont.TIMES, 
    10, 
    WritableFont.BOLD, 
    false,
    jxl.format.UnderlineStyle.NO_UNDERLINE,
    jxl.format.Colour.BLUE);
    jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
    /**
     * 标题写入
     */
    String QuerySql = "select * from TABLE_VIEW where TABLENAME='TZ_PROPRIETOR' "; stmt = conn.createStatement();
    rs = stmt.executeQuery(QuerySql);
    label = new Label(j, i, "更新时间", wcfFC);
    sheet.addCell(label);
    j++;
    while (rs.next()) {
    label = new Label(j, i, StrPro.getNotNullStr(rs.getString(3)), wcfFC);
    sheet.addCell(label);
    j++;
    select.append(StrPro.getNotNullStr(rs.getString(4)));
    select.append(",");
    }
      

  4.   

    你给我的是动态生成excel工作表的标题,我要的是导出的excel的文件名能动态生成。
    谢谢!!!
      

  5.   

    我现在能导出EXCEl表格,而且正确,但是保存EXCEL文件时,文件名是系统随机 给的,与EXCEL表的标题名不符,还得改名,容易忘,我想根据表标题动态生成EXCEL表名,有代码吗??
      

  6.   

    public static void writeExcelfour(OutputStream os, int columns,
    ResultSet rs1,String bmbm,String excelsheet) throws Exception//columns
    {
    jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
    jxl.write.WritableSheet ws = wwb.createSheet(excelsheet, 0);
    int i = 0;////i=行
    jxl.write.WritableFont wfc = new jxl.write.WritableFont(
    WritableFont.ARIAL, 10, WritableFont.BOLD, false,
    UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);//文本字体
    jxl.write.WritableFont title = new jxl.write.WritableFont(
    WritableFont.ARIAL, 20, WritableFont.BOLD, false,
    UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);//题目字体
    jxl.write.WritableCellFormat wctitle = new jxl.write.WritableCellFormat( 
    title);
    wctitle.setAlignment(jxl.format.Alignment.CENTRE);//题目 
    jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(
    wfc);
    jxl.write.DateFormat datef = new jxl.write.DateFormat("yyyy-MM-dd HH:mm:ss"); //日期
    jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(datef);
    wcfDF.setAlignment(jxl.format.Alignment.LEFT);java.text.SimpleDateFormat ymd=new java.text.SimpleDateFormat("yyyy-MM");//本机时间
    String dtime=ymd.format(new java.util.Date());//ws.mergeCells(0,0,6,0);
    jxl.write.Label labelA = new jxl.write.Label(0, 0, "采集站", wctitle);//列,行
    ws.addCell(labelA); 
    // System.out.println(bmbm);
    jxl.write.Label labelD = new jxl.write.Label(0, 1, "导出日期:",wcfFC);//列,行
    ws.addCell(labelD); 
    ws.mergeCells(1,1,3,1);
    ws.setColumnView(1,15);//第一个参数为列,第二个参为列宽
    ws.setColumnView(2,13);//
    ws.setColumnView(3,25);//
    ws.setColumnView(4,20);//
    ws.setColumnView(6,16);//
    jxl.write.DateTime labelD2 = new jxl.write.DateTime(1, 1, new java.util.Date(),wcfDF); 
    ws.addCell(labelD2); jxl.write.Label labelB = new jxl.write.Label(0, 2, "部门编号", wcfFC);//列,行
    ws.addCell(labelB); 
    jxl.write.Label labelB2 = new jxl.write.Label(1, 2, "部门名称", wcfFC);
    ws.addCell(labelB2);
    jxl.write.Label labelB3 = new jxl.write.Label(2, 2, "采集站编号", wcfFC);
    ws.addCell(labelB3);
    jxl.write.Label labelB4 = new jxl.write.Label(3, 2, "采集站名称", wcfFC);
    ws.addCell(labelB4);
    jxl.write.Label labelB5 = new jxl.write.Label(4, 2, "备注", wcfFC);
    ws.addCell(labelB5);
    jxl.write.Label labelB6 = new jxl.write.Label(5, 2, "操作人", wcfFC);
    ws.addCell(labelB6);
    jxl.write.Label labelB7 = new jxl.write.Label(6, 2, "操作时间", wcfFC);
    ws.addCell(labelB7);// System.out.println("ok");do {
    String czsj=""; 
    if(rs1.getString("czsj")==null)
    {}
    else
    {
    czsj=rs1.getString("czsj").substring(0,16);} for (int j = 0; j < columns; j++)
    {
    if(j==0)
    {
    jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("bmbm"));
    ws.addCell(labelC);
    }if(j==1)
    {
    jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("bmmc"));
    ws.addCell(labelC);
    }if(j==2)
    {
    jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("cjbh"));
    ws.addCell(labelC);
    }
    if(j==3)
    {
    jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("cjmc"));
    ws.addCell(labelC);
    }
    if(j==4)
    {
    jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("beiz"));
    ws.addCell(labelC);
    }
    if(j==5)
    {
    jxl.write.Label labelC = new jxl.write.Label(j, i+3, rs1.getString("czrm"));
    ws.addCell(labelC);
    }
    if(j==6)
    {
    jxl.write.Label labelC = new jxl.write.Label(j, i+3, czsj);
    ws.addCell(labelC);
    }
    }
    i = i + 1; 
    }
    while (rs1.next());
    rs1.close();
    wwb.write();       
    wwb.close();
    }
      

  7.   

    用 gzmingyan(广州明燕),这位仁兄的代码生成文件名,我用流下载下来的。java.util.Date date = new java.util.Date();
    java.text.SimpleDateFormat sd = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
    String fileName = sd.format(date);
    try{
    File f2=new File(fileName+".xls");
    fis=new FileInputStream(f2);
    bis=new BufferedInputStream(fis);
    fos=response.getOutputStream();
    bos=new BufferedOutputStream(fos);
    int i; 
    while ((i=bis.read()) != -1) { 
    bos.write(i);
    }
    }catch(Exception e){
    out.println(e.getMessage());
    } finally {
    if (bis != null)
    bis.close();
    if (bos != null)
    bos.close();
    if (fos != null)
    fos.close();
    if (fis != null)
    fis.close();
    }
      

  8.   

    你的代码我看了,那只是在服务器上生成个Excel文档,而没有下载到客户端啊。
      

  9.   

    还有一点你在创建的时候就可以给它启个名字的。WritableWorkbook wwb = Workbook.createWorkbook(new File(fileName+".xls"));