java 导出excel表格(.xlsx)
来源:互联网 发布:神曲 译本知乎 编辑:程序博客网 时间:2024/06/17 14:11
jsp 页面首先需要引入jquery.redirect.js<button onclick="exportExcel();">导出</button> js页面 function exportExcel(){var param = {"userId":userId};$.redirect(path+ '/exportExcel.action',param);} 后台: public class BjUserVO { private String username; private String sex ; private String age; private String department;// 单位 private String part;// 部门 } //需要注意的是headers 里面的字段的先后顺序要和BjUserVO里面的先后顺序保持一致 public void exportExcel() throws Exception { List<BjUserVO> list = new ArrayList<BjUserVO>();HttpServletResponse response = ServletActionContext.getResponse();list = bjSrvService.queryBjUserDetail(userId);ExportAndImportCommonExcel<BjUserVO> ee= new ExportAndImportCommonExcel<BjUserVO>(); String[] headers = { "姓名", "性别", "年龄", "单位" ,"部门"}; String fileName = "人员详情表"; ee.exportExcel(headers,list,fileName,response);} //下面是导出的共用的模板(要是有样式的不统一的话就需要根据需求做相应的变化)public class ExportAndImportCommonExcel<T> {/** * @Title: exportExcel * @Description: 导出excel * @Return: void * @throws * @param object 实体 * @param headers 标题 * @param bjSrvNotifyList 数据 * @param fileName 文件名称 * @param response 输出 */ @SuppressWarnings({ "rawtypes", "unchecked" })public void exportExcel(String[] headers,List list, String fileName,HttpServletResponse response) { // 声明一个工作薄 XSSFWorkbook workbook = new XSSFWorkbook(); // 生成一个表格 XSSFSheet sheet = workbook.createSheet(fileName); // 设置表格默认列宽度为15个字节 sheet.setDefaultColumnWidth((short) 20); // 产生表格标题行 XSSFRow row = sheet.createRow(0); for (short i = 0; i < headers.length; i++) { XSSFCell cell = row.createCell(i); XSSFRichTextString text = new XSSFRichTextString(headers[i]); cell.setCellValue(text); } try { // 遍历集合数据,产生数据行 Iterator<T> it = (Iterator<T>) list.iterator(); int index = 0; while (it.hasNext()) { index++; row = sheet.createRow(index); T t = (T) it.next(); // 利用反射,根据javabean属性的先后顺序,动态调用getXxx()方法得到属性值 Field[] fields = t.getClass().getDeclaredFields(); for (short i = 0; i < headers.length; i++) { XSSFCell cell = row.createCell(i); Field field = fields[i]; String fieldName = field.getName(); String getMethodName = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1); Class tCls = t.getClass(); Method getMethod = tCls.getMethod(getMethodName, new Class[] {}); Object value = getMethod.invoke(t, new Object[] {}); // 判断值的类型后进行强制类型转换 DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String textValue = null; if(fieldName.equals("conSignTime")){ textValue = df.format(value).substring(0, 10); } // 其它数据类型都当作字符串简单处理 else if(value != null && value != ""){ textValue = value.toString(); } if (textValue != null) { XSSFRichTextString richString = new XSSFRichTextString(textValue); cell.setCellValue(richString); } } } getExportedFile(workbook, fileName,response); } catch (Exception e) { e.printStackTrace(); } } /** * * 方法说明: 指定路径下生成EXCEL文件 * @return */ public void getExportedFile(XSSFWorkbook workbook, String name,HttpServletResponse response) throws Exception { BufferedOutputStream fos = null; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); try { String fileName = name+df.format(new Date())+ ".xlsx"; response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" )); fos = new BufferedOutputStream(response.getOutputStream()); workbook.write(fos); } catch (Exception e) { e.printStackTrace(); } finally { if (fos != null) { fos.close(); } } } }
阅读全文
0 0
- java 导出excel表格(.xlsx)
- C#导出excel表格(xls、xlsx)
- java xlsx 07 ,03 excel的导出
- poi简单的导入和导出Excel表格(xls。xlsx)
- javascript--利用js-xlsx实现Excel表格的导入导出
- 【Java】导出excel表格
- JAVA 导出 excel 表格
- Java导出excel表格
- 【Java】导出excel表格
- java 导出excel表格
- Java导出Excel表格
- Java导出excel表格
- java导出excel表格
- java导出Excel表格
- java导出Excel表格
- java导出excel表格
- Java导出excel表格
- Java导出excel表格
- layui框架详细分析系列之熟悉框架以及提供的页面元素
- JS 概念理解及引用
- CI框架 email类发送邮件
- Asynctask的优缺点
- JQ设置更改属性和属性值
- java 导出excel表格(.xlsx)
- 重建二叉树
- 【asp.net】Web控件-验证控件
- hdu 6034 Balala Power!(贪心)
- JS基本概念
- Activity的简单的跳转回传
- Java简介小结
- [LeetCode]406. Queue Reconstruction by Height
- JavaScript整理1