当前位置: 移动技术网 > IT编程>开发语言>Java > java导出Excel通用方法的实例详解

java导出Excel通用方法的实例详解

2019年07月22日  | 移动技术网IT编程  | 我要评论

java导出excel通用方法的实例详解

java导出excel通用方法,只需要一个list 集合。通用方法改进之处踊跃提出

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; 
 } 
} 

测试:

/** 
 * 导出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; 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网