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();
});
本文介绍如何通过Java POI库实现用户数据的Excel导出功能。具体步骤包括在pom.xml文件中添加POI依赖、创建继承自AbstractExcelExportTemplate的模板类,并定义表格结构与数据填充逻辑。最后通过Struts2框架配置action方法和前端交互实现数据导出。
942

被折叠的 条评论
为什么被折叠?



