导出excel

 pom.xml中加入poi的依赖:

<dependency>
        <groupId>org.apache.poi</groupId>
	    <artifactId>poi-ooxml</artifactId>
	    <version>3.8</version>
	    <scope>provided</scope>
</dependency>

 

 

后台action定义一个excelTemplate类,继承自AbstractExcelExportTemplate:

private class UserListTemplate extends AbstractExcelExportTemplate<User>{
		public String[] getSheetNames() {
			return new String[]{"sheet1"};
		}

		public String[][] getTitles() {
			return new String[][]{{"用户名","账号状态","账号类型"}};
		}
		
		@Override
		public String[] getCaptions() {
			return new String[] {"用户列表情况"};
		}

		protected void buildBody(int sheetIndex) {
			Sheet sheet = getSheet(sheetIndex);
			int startIndex = this.getBodyStartIndex(sheetIndex);
			
			
			for(int i = 0; i < users.size(); i++) {
				User u = users.get(i);
				Row row = sheet.createRow(i+startIndex); 
				row.setHeight((short)300);
				int index = 0;
				createStyledCell(row,index++, u.getUsername(),this.bodyRowStyle);
				createStyledCell(row,index++, String.valueOf(u.getEnabled()),this.bodyRowStyle);
				createStyledCell(row,index++, u.getDescription(),this.bodyRowStyle);
			}
			
		}
	}

 

 

定义一个action方法,调用:

public String exportToExcel() throws Exception {
		getResponse().setContentType(Servlets.EXCEL_TYPE);
		Servlets.setFileDownloadHeader(getRequest(),getResponse(), "用户列表.xlsx");
		ExcelExportTemplate<User> exportUserListTemplate = new UserListTemplate();
		exportUserListTemplate.doExport(getResponse().getOutputStream(), null);
		return SUCCESS;
	}

 

struts.xml:

<action name="exportToExcel" class="userAction" method="exportToExcel">
		<result type="httpheader">
			<param name="status">200</param>
		</result>
</action>

 

 

前台用jquery表单post即可:

$("#excelBtn").click(function(){
		var frm = $("<form></form>");
		frm.attr('action', '/showcase-app/exportToExcel.action');
		frm.attr('method', 'post');
		
		frm.appendTo('body');
		frm.css('display', 'none');
		frm.submit();
		frm.remove();
	});

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值