java实现导出excel功能
来源:互联网 发布:淘宝导航条隐藏 编辑:程序博客网 时间:2024/06/06 11:04
直接贴代码:
controller层
/** * 会员列表-导出会员列表 * * @author Mokuran * @param request * @param * @return */ @RequestMapping(value = "/exportMemberList", method = RequestMethod.GET) public void exportMemberList(HttpServletRequest request, HttpServletResponse response) throws WriteException, IOException { String sessionId = HttpUtils.getJSessionId(request); StaffInfoBean staff = RedisUtils.getObject(sessionId + "staffInfo", StaffInfoBean.class); String merchNo = storeService.findByStoreno(staff.getStoreNo()).getMerchno(); MemberListBean memberListBean = new MemberListBean(); memberListBean.setMerchNo(merchNo); if (!request.getParameter("levelName").equals("null")) { memberListBean.setLevelName(request.getParameter("levelName")); } if (!request.getParameter("channel").equals("null")) { memberListBean.setChannel(Integer.valueOf(request.getParameter("channel"))); } if (!request.getParameter("status").equals("null")) { memberListBean.setStatus(Integer.valueOf(request.getParameter("status"))); } if (!request.getParameter("startTime").equals("null") && !StringUtil.isEmpty(request.getParameter("startTime"))) { memberListBean.setStartTime(request.getParameter("startTime")); } if (!request.getParameter("endTime").equals("null") && !StringUtil.isEmpty(request.getParameter("endTime"))) { memberListBean.setEndTime(request.getParameter("endTime")); } if (!request.getParameter("phoneOrNumber").equals("null")) { memberListBean.setPhoneOrNumber(request.getParameter("phoneOrNumber")); } logger.info("开始获取会员列表" + memberListBean); List<MemberListBean> memberList = memberService.getMemberListForExport(memberListBean); String fileName = "会员列表.xls"; // 导出参数 Map<String, String> exportMap = new LinkedHashMap<String, String>(); exportMap.put("会员卡号", "memberNo"); exportMap.put("姓名", "memberName"); exportMap.put("手机号", "phone"); exportMap.put("来源渠道", "startTime"); exportMap.put("门店名称", "storeName"); exportMap.put("会员卡类别", "levelName"); exportMap.put("生日", "birthday"); exportMap.put("储值余额", "availableAmount"); exportMap.put("剩余积分", "availablePoint"); exportMap.put("开卡时间", "registrationTime"); exportMap.put("状态", "endTime"); ExportExcelUtil util = new ExportExcelUtil(); util.exportExcel(fileName, exportMap, memberList, response); }util方法:
package anmav.boss.utils;import java.io.IOException;import java.io.OutputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletResponse;import jxl.Cell;import jxl.Workbook;import jxl.format.Alignment;import jxl.format.Border;import jxl.format.BorderLineStyle;import jxl.format.VerticalAlignment;import jxl.write.Label;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import org.apache.log4j.Logger;import org.springframework.util.StringUtils;public class ExportExcelUtil {private final static Logger logger = Logger.getLogger(ExportExcelUtil.class);/** * 导出excel * * @param fileName * @param exportMap * @param listContent * @param response * @return * @throws IOException * @throws WriteException */public void exportExcel(String fileName,Map<String, String> exportMap, List<? extends Object> listContent, HttpServletResponse response ) throws WriteException, IOException {WritableWorkbook workbook = null; String str = exportMap.get("record");// 以下开始输出到EXCELtry {// 定义输出流,以便打开保存对话框______________________begin// HttpServletResponse response=ServletActionContext.getResponse();OutputStream os = response.getOutputStream();// 取得输出流response.reset();// 清空输出流response.setHeader("Content-disposition","attachment; filename=" + new String(fileName.getBytes("GB2312"), "ISO8859-1"));// 设定输出文件头response.setContentType("application/msexcel");// 定义输出类型// 定义输出流,以便打开保存对话框______________________begin// HttpServletResponse response=ServletActionContext.getResponse();// 定义输出流,以便打开保存对话框_______________________end/** **********创建工作簿************ */workbook = Workbook.createWorkbook(os);/** **********创建工作表************ */WritableSheet sheet = workbook.createSheet("Sheet1", 0);/** **********设置纵横打印(默认为纵打)、打印纸***************** *//* * jxl.SheetSettings sheetset = sheet.getSettings(); * sheetset.setProtected(false); *//** ************设置单元格字体************** */WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);/** ************以下设置三种单元格样式,灵活备用************ */// 用于标题居中WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐wcf_center.setWrap(false); // 文字是否换行// 用于正文居左WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);wcf_left.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐wcf_left.setAlignment(Alignment.LEFT); // 文字水平对齐wcf_left.setWrap(false); // 文字是否换行int k = 0;/** ***************以下是EXCEL开头大标题,暂时省略********************* */if(!StringUtils.isEmpty(str)){ sheet.mergeCells(0, k, exportMap.size() - 1, 2); sheet.addCell(new Label(0, k, str, wcf_center)); k = 3; exportMap.remove("record");}/** ***************以下是EXCEL第一行列标题********************* */Object[] columArr = exportMap.keySet().toArray();Object[] filedNameArr = exportMap.values().toArray();sheet.addCell(new Label(0, k, "序号", wcf_center));for (int i = 0; i < columArr.length; i++) {sheet.setColumnView(i, 20);sheet.addCell(new Label(i + 1, k, columArr[i].toString(),wcf_center));}/** ***************以下是EXCEL正文数据********************* */k++;int c = 1;//设置第一列的序号for (Object obj : listContent) {int j = 0;Object value = null;sheet.addCell(new Label(j, k, String.valueOf(c), wcf_left));j++;for (Object fieldName : filedNameArr) {//logger.info("obj:" + obj);//logger.info("fieldName:"+fieldName);value =((HashMap)obj).get(fieldName);logger.info("value:"+value);if (value == null) {value = "";} sheet.addCell(new Label(j, k, value.toString(), wcf_left));j++;}k++;c++;}/** **********将以上缓存中的内容写到EXCEL文件中******** */workbook.write();/** *********关闭文件************* *//* * workbook.close(); logger.info("导出excel成功"); */logger.info("导出excel成功");} catch (Exception e) {logger.error("导出excel失败", e);} finally {if (workbook != null)workbook.close();}}/** * 获取EXCEL单元格的内容 * * @param cell * @return */public static String getContent(Cell cell) {if (cell == null) {return "";}String str = cell.getContents();if (str == null) {return "";}return str.trim();}}
导出结果如下:
阅读全文
0 0
- Java 实现导出Excel功能
- java实现导出excel功能
- java jxl实现excel导出功能
- POI实现java导出Excel功能
- Java实现POI导出Excel报表功能
- Java 的Excel 导出功能的实现
- java Excel导出功能
- javaEE excel导出功能实现
- EXCEL导出功能实现参考
- java实现的数据库导出成excel功能
- 利用Java反射机制和POI实现导出Excel功能
- 利用Java反射机制和POI实现导出Excel功能
- java中如何使用POI来实现导出excel功能
- Java的Excel导出功能
- POI(JAVA Excel导出功能)
- java实现Excel导出
- java实现excel导出
- JAVA导出EXCEL实现
- Cloud Control 12c 的Agant安装
- springmvc学习笔记
- lintcode---子集(带重复元素和不带重复元素的两种解法)
- jquery犯下的智减级错误
- web 二级联动的实现
- java实现导出excel功能
- 教程篇(5.4) NSE4 11. 应用控制 ❀ 飞塔 (Fortinet) 网络安全专家
- 网络编程的最佳实践
- Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException:
- Git配置多个SSH-Key
- Android 导入的第三方v4或v7包冲突
- 如何学习优质 android开源项目
- centos6.8安装mysql5.6启动时出现Default config file /etc/my.cnf exists on the system...
- OpenCV-008:抠图与图片拼接