java导出Excel报表,最好的是那种jar包

解决方案 »

  1.   

    jxl,poi都可以的.如下参考:
    http://zhidao.baidu.com/question/96368485.html
    http://www.oschina.net/code/snippet_35115_2120
      

  2.   

    现在我要用Ireport做报表模板,谁有ireport的帮助文档,有的麻烦给我发一个,谢谢了
      

  3.   

    有ireport的API的给我发一个,谢谢了。
    [email protected]
      

  4.   

    做个简单的雏形 没用任何的jar包
      

  5.   

    使用jxl做excel的导入和导出
    使用iText做word, pdf的导出。
      

  6.   

    使用JXL解析
    示例如下:
    public static File createExcel(List list,List<String> head,List<String> proerty,String fileName ){

    //创建输出文件
    File file = new File(fileName);  
    int line = 0;
    int row = 0;
    int sheetNum = 1;
    try {
    //表头格式
    WritableCellFormat wcfF = new jxl.write.WritableCellFormat();
    wcfF.setAlignment(jxl.format.Alignment.CENTRE);
    wcfF.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    wcfF.setBackground(Colour.LIGHT_ORANGE);
    WritableWorkbook wwb = Workbook.createWorkbook(file);
    WritableSheet ws = wwb.createSheet("第"+sheetNum+"页",sheetNum);
    //设置冻结首行

    ws.getSettings().setVerticalFreeze(1);
    ws.getSettings().setFitWidth(100);
    //数据格式
    WritableCellFormat dateDcfF = new jxl.write.WritableCellFormat();
    dateDcfF.setWrap(true);
    dateDcfF.setAlignment(jxl.format.Alignment.CENTRE);
    dateDcfF.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

    //控制列宽
    ws.setColumnView(0, 20);
    ws.setColumnView(1, 18);
    ws.setColumnView(2, 18);
    ws.setColumnView(3, 18);
    ws.setColumnView(4, 18);
    ws.setColumnView(5, 25);
    ws.setColumnView(6, 18);
    ws.setColumnView(7, 18);
    ws.setColumnView(8, 18);
    ws.setColumnView(9, 18);
    ws.setColumnView(10, 18);
    ws.setColumnView(11, 18);
    ws.setColumnView(12, 18);
    ws.setColumnView(13, 18);
    ws.setColumnView(14, 18);
    ws.setColumnView(15, 18);

    sheetNum++;
    //写入表头
    for(String str:head){
    Label label=new Label(line, 0, str,wcfF);
    ws.addCell(label);
    line++;
    }
    row++;
    //写入数据
    for(Object obj:list){
    line = 0;
    Class className = obj.getClass();
    //反射所有字段
    Field[] fields = className.getDeclaredFields(); for(String str:proerty){
    for(Field field:fields){
    //若该字段是需要导出的字段则写入Excel
    if(str.equals(field.getName())){
    // 修改相应filed的权限
    boolean accessFlag = field.isAccessible();
    field.setAccessible(true);

    //读取对象中相应的属性的值
    Object value = field.get(obj);
    String temp ="";
    if(value!=null){
    temp = value.toString();
    }
    if(str.equals("commendTime")){
    value = field.get(obj).toString().substring(0, 19);
    }
    //设置cell的值
    Label label=new Label(line, row, temp,dateDcfF);
    ws.addCell(label);

    // 恢复相应field的权限
    field.setAccessible(accessFlag);
    line++;
    }
    }
    }
    row++;
    //行数超过10000行是数据放入下一个sheet
    if(row%10000==0){
    //设置标题格式
    line = 0;
    row = 0;
    ws = wwb.createSheet("第"+sheetNum+"页",sheetNum);
    //设置冻结首行
    ws.getSettings().setVerticalFreeze(1);
    //控制列宽
    //控制列宽
    ws.setColumnView(0, 20);
    ws.setColumnView(1, 18);
    ws.setColumnView(2, 18);
    ws.setColumnView(3, 18);
    ws.setColumnView(4, 18);
    ws.setColumnView(5, 25);
    ws.setColumnView(6, 18);
    ws.setColumnView(7, 18);
    ws.setColumnView(8, 18);
    ws.setColumnView(9, 18);
    ws.setColumnView(10, 18);
    ws.setColumnView(11, 18);
    ws.setColumnView(12, 18);
    ws.setColumnView(13, 18);
    ws.setColumnView(14, 18);
    ws.setColumnView(15, 18);
    sheetNum++; 
    //再次写入表头
    for(String str:head){
    Label label=new Label(line, 0, str,wcfF);
    ws.addCell(label);
    line++;
    }
    row++;
    }
    }
    //写入数据并关闭文件 
    wwb.write(); 
    wwb.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (RowsExceededException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (WriteException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IllegalArgumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
     
    return file;
    }
    }在struts里面配配置示例:[align=left]<action name="exportRecommendDetail"
    class="com.ailk.lx100.admin.action.FindRecommendDetailAction" method="exportRecommendDetail">
    <result name="success" type="stream">
    <param name="contentType">application/octet-stream</param>
    <param name="inputName">inputStream</param>
    <param name="contentDisposition">attachment;filename="${fileName}"</param>
    <param name="bufferSize">4096</param>
    </result>
    </action>[/align]