如何将客户端的excel 导入到服务器上
和将服务HSSFWorkbook对象导出生成一个excel文件
急!!!

解决方案 »

  1.   

    可以吗 
    可是HSSFWorkbook是在运行过程 中生成的啊
      

  2.   

    利用POI中的HSSF生成的Excel报表原码
    void createReport(ResultSet rs)
    {
       try
       {
    ResultSetMetaData rsmd = rs.getMetaData();
    //获得数据集的列数
      int numbercols=rsmd.getColumnCount();
      rs.last();
        //将数据集游标置为最后一行,获得数据集的行数
      int numberrows=rs.getRow();
    //生成一个HSSFWorkbook对象,进行操作
    HSSFWorkbook wb=new HSSFWorkbook();
    //设置显示的字体以及相关的样式
    HSSFFont font = wb.createFont();
        font.setFontHeightInPoints((short)8);
        font.setFontName("Courier New");
        font.setItalic(false);
        font.setStrikeout(false);
       
        //设置标题栏单元格的样式
    HSSFCellStyle cellHeadStyle=wb.createCellStyle();
        cellHeadStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
    cellHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);
        cellHeadStyle.setBorderLeft((short)1);
        cellHeadStyle.setBorderRight((short)1);
        cellHeadStyle.setBorderTop(HSSFCellStyle.BORDER_DOUBLE);
    cellHeadStyle.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);
        cellHeadStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
        //设置数据行的字体以及以及相关的对齐方式
    HSSFCellStyle cellDataStyle=wb.createCellStyle();
        cellDataStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
    cellDataStyle.setFont(font);
     
        //新建一个HSSFSheet对象
      HSSFSheet sheet=wb.createSheet("new sheet"); //处理标题行,建立单元格,得到相关表字段名称写入到相关的单元格
      HSSFRow row=sheet.createRow((short)0);
      for(int i=1;i<=numbercols;i++)
      {
            HSSFCell cellHead = row.createCell((short)(i-1));
          cellHead.setCellStyle(cellHeadStyle);
            cellHead.setCellValue(rsmd.getColumnLabel(i));
      }
      //重新定位数据行
    rs.beforeFirst();
    int j=1;
    //将每一行的数据写入到相应的单元格
      while(rs.next() && j<=numberrows)
      {
      HSSFRow row1=sheet.createRow((short)j);
      for(int k=1;k<=numbercols;k++)
      {
    HSSFCell cellData = row1.createCell((short)(k-1));
    cellData.setCellStyle(cellDataStyle);
    //设置编码类型,用于支持中文的输出
                cellData.setEncoding(HSSFCell.ENCODING_UTF_16);
            /*判断原来数据的格式,然后以相同的数据格式写入单元格,以方便用户
                可以进行一定的统计工作,日期类型和字符串类型使用String类型进行输出
                */
    if(rsmd.getColumnType(k)==java.sql.Types.INTEGER)
      cellData.setCellValue(rs.getInt(k));
    else if(rsmd.getColumnType(k)==java.sql.Types.VARCHAR)
    cellData.setCellValue(rs.getString(k));
    else if(rsmd.getColumnType(k)==java.sql.Types.REAL)
    cellData.setCellValue(rs.getDouble(k));
    else
    cellData.setCellValue(rs.getString(k));
         }
       j++; }
    //利用输出流将数据集写入到硬盘的文件中,操作结束后,关闭输出流
     FileOutputStream fileOut = new FileOutputStream("c:\\reportExport.xls");
     wb.write(fileOut);
     fileOut.close();
      }catch(Exception e ){}
    }