java导出Excel通用方法

Java 导出Excel通用方法,只需要一个list 集合。通用方法改进之处踊跃提出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package oa.common.utils; 
import java.io.OutputStream; 
import java.util.List; 
import javax.servlet.http.HttpServletResponse; 
import org.apache.struts2.ServletActionContext; 
import java.lang.reflect.Field; 
   
import jxl.Workbook; 
import jxl.format.Alignment; 
import jxl.format.Border; 
import jxl.format.BorderLineStyle; 
import jxl.format.VerticalAlignment; 
import jxl.write.Label; 
import jxl.write.WritableCellFormat; 
import jxl.write.WritableFont; 
import jxl.write.WritableSheet; 
import jxl.write.WritableWorkbook; 
/***
  * @author lsf
  */ 
public class ExportExcel { 
  /***************************************************************************
   * @param fileName EXCEL文件名称
   * @param listTitle EXCEL文件第一行列标题集合
   * @param listContent EXCEL文件正文数据集合
   * @return
   */ 
  public  final static String exportExcel(String fileName,String[] Title, List<Object> listContent) { 
   String result= "系统提示:Excel文件导出成功!" ;   
   // 以下开始输出到EXCEL 
   try {     
    //定义输出流,以便打开保存对话框______________________begin 
    HttpServletResponse response=ServletActionContext.getResponse(); 
    OutputStream os = response.getOutputStream(); // 取得输出流       
    response.reset(); // 清空输出流       
    response.setHeader( "Content-disposition" , "attachment; filename=" + new String(fileName.getBytes( "GB2312" ), "ISO8859-1" )); 
// 设定输出文件头       
    response.setContentType( "application/msexcel" ); // 定义输出类型     
    //定义输出流,以便打开保存对话框_______________________end 
   
    /** **********创建工作簿************ */ 
    WritableWorkbook workbook = Workbook.createWorkbook(os); 
   
    /** **********创建工作表************ */ 
   
    WritableSheet sheet = workbook.createSheet( "Sheet1" , 0 ); 
   
    /** **********设置纵横打印(默认为纵打)、打印纸***************** */ 
    jxl.SheetSettings sheetset = sheet.getSettings(); 
    sheetset.setProtected( false ); 
   
   
    /** ************设置单元格字体************** */ 
    WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10 ); 
    WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10 ,WritableFont.BOLD); 
   
    /** ************以下设置三种单元格样式,灵活备用************ */ 
    // 用于标题居中 
    WritableCellFormat wcf_center = new WritableCellFormat(BoldFont); 
    wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条 
    wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐 
    wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐 
    wcf_center.setWrap( false ); // 文字是否换行 
      
    // 用于正文居左 
    WritableCellFormat wcf_left = new WritableCellFormat(NormalFont); 
    wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条 
    wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐 
    wcf_left.setAlignment(Alignment.LEFT); // 文字水平对齐 
    wcf_left.setWrap( false ); // 文字是否换行    
    
   
    /** ***************以下是EXCEL开头大标题,暂时省略********************* */ 
    //sheet.mergeCells(0, 0, colWidth, 0); 
    //sheet.addCell(new Label(0, 0, "XX报表", wcf_center)); 
    /** ***************以下是EXCEL第一行列标题********************* */ 
    for ( int i = 0 ; i < Title.length; i++) { 
     sheet.addCell( new Label(i, 0 ,Title[i],wcf_center)); 
    }    
    /** ***************以下是EXCEL正文数据********************* */ 
    Field[] fields= null
    int i= 1
    for (Object obj:listContent){ 
        fields=obj.getClass().getDeclaredFields(); 
        int j= 0
        for (Field v:fields){ 
            v.setAccessible( true ); 
            Object va=v.get(obj); 
            if (va== null ){ 
                va= ""
           
            sheet.addCell( new Label(j, i,va.toString(),wcf_left)); 
            j++; 
       
        i++; 
   
    /** **********将以上缓存中的内容写到EXCEL文件中******** */ 
    workbook.write(); 
    /** *********关闭文件************* */ 
    workbook.close();    
   
   } catch (Exception e) { 
    result= "系统提示:Excel文件导出失败,原因:" + e.toString(); 
    System.out.println(result);  
    e.printStackTrace(); 
  
   return result; 
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
  * 导出excel
  * @return
  */ 
public String excelPage(){ 
     ExportExcel excel= new ExportExcel(); 
     String str= ""
     try
         str = new String(getHTTP.getRequest().getParameter( "wineOrg.orgName" ).getBytes( "iso8859-1" ), "UTF-8" ); 
     } catch (UnsupportedEncodingException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
    
     wineOrg.setOrgName(str); 
     List<Object> li=service.exportExcel(wineOrg); 
     String[] Title={ "机构ID" , "会员编号" , "类别" , "名称" , "省ID" , "省名称" , "城市ID" , "城市名称" , "详细地址" , "联系人" , "性别" , "联系手机" , "联系电话" , "传真" , "邮箱" , "QQ" , "生日" , "积分" , "客户等级" , "现金账户余额" , "结算方式" , "客户类型" , "购买次数" , "购买支数" , "创建人ID" , "创建人姓名" , "create_time" , "del" , "STS" , "备注" , "负责人ID" , "负责人姓名" , "审核标识" , "审核人ID " , "审核人姓名" , "审核日期" , "分配人ID" , "分配人姓名" , "分配日期" , "修改人ID" , "修改人姓名  " , "修改时间" }; 
     excel.exportExcel( "客户资料信息.xls" ,Title, li);  
     return SUCCESS; 
}
仅供扩展阅读:
  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值