导出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();
	});

 

 

你可能感兴趣的:(Excel)