easypoi导出Excel

本例使用的easypoi包是easypoi-0.2-fix.jar

前端调用方式和其他(poi,jxl等)一致,此处暂不记录。


java导出代码如下:

1.User实体

public class User {
	private int userId;
	private String name;
	private String sex;
	private String address;
	
	
        public int getUserId() {
		return userId;
	}


	public void setUserId(int userId) {
		this.userId = userId;
	}


	public String getName() {
		return name;
	}


	public void setName(String name) {
		this.name = name;
	}


	public String getSex() {
		return sex;
	}


	public void setSex(String sex) {
		this.sex = sex;
	}


	public String getAddress() {
		return address;
	}


	public void setAddress(String address) {
		this.address = address;
	}


}

2.导出调用方法

/**
 * 导出Excel
 */
public void exportUserInfoToExcel() throws IOException{
	OutputStream out = response.getOutputStream();
	response.setContentType("application/x-download");
	//设置导出文件名称
	response.setHeader("Content-Disposition", "attachment;filename="+DateUtil.getNow("yyyyMMddHHmmssSSS")+".xls");
	
	Excel excel = new Excel();
	
	//查询内容list,userService.getUserList方法自己实现
	List<User> list = userService.getUserList();
	//表头数组
	String[] header = {"用户ID","用户名","性别","地址"};
	//表单title
	String title = "用户信息列表";
	int headerLen = header.length;
	//单元格边框颜色
	Color borderColor = Color.GREY_50_PERCENT;
	//表头字体
	IFontEditor headFont = new IFontEditor(){
		public void updateFont(Font font){
			font.fontHeightInPoints(14)
			.boldweight(BoldWeight.BOLD)
			.color(Color.WHITE);
		}
	};
	//标题字体
	IFontEditor titleFont = new IFontEditor(){
		public void updateFont(Font font){
			font.fontHeightInPoints(30)
			.boldweight(BoldWeight.BOLD)
        	.color(Color.DARK_BLUE);
		}
	};
	//设置表单信息
	excel.setWorkingSheet(0)//设置第1个工作表为工作状态
		 .sheetName(title+"1") 
		 .fitToPage(true)
		 .horizontallyCenter(true)
		 .printGridlines(false)
		 .displayGridlines(true)
		 .autobreaks(true)
         .printSetup(new IPrintSetup(){
			public void setup(HSSFPrintSetup printSetup) {
				printSetup.setLandscape(true);//是否打印背景
				printSetup.setFitHeight((short)1);//调整缩放
	            printSetup.setFitWidth((short)1);//调整缩放
			}
        });
	
	//设置标题内容,标题行列合并,标题样式
	excel.row(0).height(60);
    excel.cell(0, 0).value(title)
    	.align(Align.CENTER)
    	.font(titleFont);
    excel.region(0, 0, 0, headerLen-1).merge();//合并标题的单元格
    
    //设置表头及样式
    for(int i=0;i<headerLen;i++){
    	excel.column(i).width(5000);
    	excel.cell(1, i).value(header[i])
    	     .align(Align.CENTER)
    	     .bgColor(Color.DARK_BLUE)
    	     .font(headFont);
    }
    
    //添加内容
    for(int i=0,len=list.size();i<len;i++){
    	excel.row(i+2).height(30);//设置行高度
    	for(int j=0;j<headerLen;j++){
        	excel.cell(i+2, j).align(Align.CENTER)//设置区域内单元格水平对齐方式
        		.vAlign(VAlign.CENTER)//设置垂直对齐方式
        		.border(BorderStyle.THIN, borderColor);
    	}   
    	User grid = list.get(i);
    	excel.cell(i+2, 0).value(grid.getUserId());
    	excel.cell(i+2, 1).value(grid.getName());
    	excel.cell(i+2, 2).value(grid.getSex());
    	excel.cell(i+2, 3).value(grid.getAddress());
    }
    
	excel.saveExcel(out);
}


3.打印横向设置

//设置横向打印
IPrintSetup printSetup = new IPrintSetup(){
	public void setup(HSSFPrintSetup setup) {
		setup.setLandscape(true);
	}
			
};
excel.setWorkingSheet(0).printSetup(printSetup);



你可能感兴趣的:(easypoi导出Excel)