您的位置:首页 > 编程语言 > Java开发

Spring+struts2+hibernate框架的Java Web项目利用POI导出Excel简单例子

2017-11-28 10:59 891 查看
在开始编写之前,小猿要先导入POI的jar包哟~~

POI介绍

Apache POI是Apache软件基金会的开放源码函式库,是用Java编写的免费开源的跨平台的 Java
API,POI提供API给Java程序对Microsoft
Office格式档案进行各种操作。

POI主要用到的类有HSSFWorkbook、HSSFSheet、HSSHRow、HSSFCell,HSSFWorkbook是Excel文件对象、HSSFSheet是Excel文件内的分页sheet对象、HSSHRow是行对象、HSSFCell是单元格对象,它们都在org.apache.poi.hssf.usermodel这个package里面。
1、UserAction代码如下 :

/**
* 把数据导入到服务器并下载下来
* @throws Exception
*/
public String exportExcel() throws Exception {
HttpServletResponse response = ServletActionContext.getResponse();
List<User> list = userService.findAll();//查询所有用户信息
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-disposition", "attachment;filename=user.xls");
response.setCharacterEncoding("utf-8");
HSSFWorkbook wb = userService.export(list);

OutputStream ouputStream = response.getOutputStream();
wb.write(ouputStream);
ouputStream.flush();
ouputStream.close();

return null;
}

2、UserService代码如下:
/**
* 导出Excel格式的数据
* @param list
* @return
*/
public HSSFWorkbook export(List<User> list) {

String[] excelHeader = { "用户ID","级别权限", "用户名", "用户密码", "手机号码", "住址"};
// 单元格列宽
int[] excelHeaderWidth = { 100, 120, 120, 120, 120, 200};
// 创建一个Excel表格
HSSFWorkbook wb = new HSSFWorkbook();
// 创建一个工作表格(sheet)
HSSFSheet sheet = wb.createSheet("用户列表");
// 创建行
HSSFRow row = sheet.createRow(0);
//
HSSFCellStyle style = wb.createCellStyle();
// 设置居中样式
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中

// 设置列宽度(像素)
for (int i = 0; i < excelHeaderWidth.length; i++) {
sheet.setColumnWidth(i, 32 * excelHeaderWidth[i]);
}

// 添加表格头
for (int i = 0; i < excelHeader.length; i++) {
// 创建单元格
HSSFCell cell = row.createCell(i);
cell.setCellValue(excelHeader[i]);
cell.setCellStyle(style);
}
// 添加数据 用户ID","级别权限", "用户名", "用户密码", "手机号码", "住址
for (int i = 0; i < list.size(); i++) {
row = sheet.createRow(i + 1);
User user = list.get(i);
row.createCell(0).setCellValue(user.getUid());
row.createCell(1).setCellValue(user.getDictCustLevel().getDname());
row.createCell(2).setCellValue(user.getUsername());
row.createCell(3).setCellValue(user.getPassword());
row.createCell(4).setCellValue(user.getPhoneNumber());
row.createCell(5).setCellValue(user.getAddress());
}

return wb;
}

3、UserDao代码:
// 查询所有数据
public List<User> findAll();
4、UserDaoImpl实现代码:
public List<User> findAll() {
List<User> list = (List<User>) this.getHibernateTemplate().find("from User");
return list;
}
5、前台的Javascript代码:
<script type="text/javascript">
function exportExcel(){
location.href="${pageContext.request.contextPath }/user_exportExcel.action";

}
</script>

6、大功告成,如果有什么疑问,在这里提问,乐意为你解决~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息