将数据库中数据导出为excel表格
2019-12-20 18:09
2136 查看
public class Excel { private static Logger logger = LoggerFactory.getLogger(Excel.class); /** * 导出项目列表 * * @param jsonArray * @param request * @param response * @return */ public static Result createCloudServerXls(JSONArray jsonArray, HttpServletRequest request, HttpServletResponse response) { try { // 创建HSSFWorkbook String sheetName = "报表导出"; //表头,根据自己需求更改 String[] cellTitle = new String[]{"学号","姓名","年龄","班级"}; String[][] rows = null; List<Student> list = JSONArray.parseArray(jsonArray.toJSONString(), Student.class); if (!ListTool.isEmpty(list)) { rows = new String[list.size()][4]; for (int i = 0; i < list.size(); i++) { Student student = list.get(i); rows[i][0] = student.getSno(); rows[i][1] = student.getName(); rows[i][2] = student.getAge(); rows[i][3] = student.getGrade() } } else { rows = new String[0][4]; } HSSFWorkbook workbook = getHSSFWorkbook(sheetName, cellTitle, rows, null); // 下载表格到浏览器 response.setCharacterEncoding("utf-8"); response.setContentType("application/octet-stream"); String fileName = sheetName + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ".xls"; final String userAgent = request.getHeader("user-agent").toLowerCase(); if (userAgent.contains("trident") || userAgent.contains("edge")) { fileName = URLEncoder.encode(fileName, "UTF-8"); } else { fileName = new String(fileName.getBytes("utf-8"), "iso-8859-1"); } response.setHeader("Content-Disposition", "attachment;fileName=" + fileName); OutputStream os = response.getOutputStream(); workbook.write(os); os.flush(); os.close(); } catch (Exception e) { logger.error("生成文档失败", e); return new Result(false, "发生异常生成文档失败"); } return new Result(true, "生成文档成功"); } /** * 导出Excel * * @param sheetName sheet名称 * @param title 标题 * @param values 内容 * @param wb HSSFWorkbook对象 * @return */ private static HSSFWorkbook getHSSFWorkbook(String sheetName, String[] title, String[][] values, HSSFWorkbook wb) { // 第一步,创建一个HSSFWorkbook,对应一个Excel文件 if (wb == null) { wb = new HSSFWorkbook(); } // 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = wb.createSheet(sheetName); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制 HSSFRow row = sheet.createRow(0); // 第四步,创建单元格,并设置值表头 设置表头居中 HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER); // 创建一个居中格式 // 声明列对象 HSSFCell cell = null; // 创建标题 for (int i = 0; i < title.length; i++) { cell = row.createCell(i); cell.setCellValue(title[i]); cell.setCellStyle(style); } // 创建内容 for (int i = 0; i < values.length; i++) { row = sheet.createRow(i + 1); for (int j = 0; j < values[i].length; j++) { // 将内容按顺序赋给对应的列对象 row.createCell(j).setCellValue(values[i][j]); } } return wb; } }
相关文章推荐
- java导出数据库中Excel表格数据的方法
- 4000 struts2页面下载,从数据库把数据以excel表格形式导出
- SqlServer 2008数据库 怎么样导出Excel表格数据
- 数据库表格数据导出到excel方法总结
- 导出EXCEL表格之三将数据库中查询出的数据原样导出
- 将数据库数据导出至Excel表格
- oracle SQL Develop导出数据库中的表格数据到excel
- C#中数据库数据如何导出至Excel表格
- C#后台制作之数据库(二、如何清除显示以及将数据库数据导出到excel表格文件中)
- Excel表格数据导入导出数据库
- PHP----从数据库导出数据到表格:PHPExcel
- 数据导出为Excel表格
- Java Web利用POI导出Excel的示例(不在数据库取数据,Map类型的数据)
- 使用LaravelExcel导出表格数据格式问题
- vue+element将数据导出成excel表格
- 利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
- 导出数据库数据的方法,适合简单的数据库表格结构
- Android数据转化为Excel表格导入导出
- 20160307 DataTableToExcel(将数据库中的数据导出到Excel表)
- input file 文件上传下载 查询数据库数据并导出Excel