用Java实现下载功能,并保存到excel表格中
来源:互联网 发布:格式化数据恢复软件 编辑:程序博客网 时间:2024/06/08 15:47
一,通过POI接口,将从数据库中查出的信息以excel的形式存储
1.首先写一个Utils类
public class DownPOIUtils {/** * * @param response:响应对象,类型是HttpServletResponse * @param map:要封装的信息的map容器,其中key为Student,value为String类型的,在这里代表分数 * @throws Exception:代表异常对象 */public static void downPoi(HttpServletResponse response,Map<Student, String> map) throws Exception {String fname = "detial" + getTimeStamp();// Excel文件名OutputStream os = response.getOutputStream();// 取得输出流response.reset();// 清空输出流response.setHeader("Content-disposition", "attachment; filename="+ fname + ".xls"); // 设定输出文件头,该方法有两个参数,分别表示应答头的名字和值。response.setContentType("application/msexcel");try {new DownPOIUtils().new POIS().createFixationSheet(os, map);} catch (Exception e) {e.printStackTrace();}}/** * 该方法用来产生一个时间字符串(即:时间戳) * @return */public static String getTimeStamp() {SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:MM:ss");Date date = new Date();return dateFormat.format(date);}2.编写POI代码
class POIS {public void createFixationSheet(OutputStream os,Map<Student, String> student) throws Exception {// 创建工作薄HSSFWorkbook wb = new HSSFWorkbook();// 在工作薄上建一张工作表HSSFSheet sheet = wb.createSheet();HSSFRow row = sheet.createRow((short) 0);sheet.createFreezePane(0, 1);cteateCell(wb, row, (short) 0, "学号");cteateCell(wb, row, (short) 1, "姓名");cteateCell(wb, row, (short) 2, "性别");cteateCell(wb, row, (short) 3, "班级");cteateCell(wb, row, (short) 4, "分数");int i = 0;Set<Student> keySet = student.keySet();Iterator<Student> iterator = keySet.iterator();while (iterator.hasNext()) {HSSFRow rowi = sheet.createRow((short) (++i));Student student2 = iterator.next();for (int j = 0; j < 4; j++) {cteateCell(wb, rowi, (short) 0, student2.getId());cteateCell(wb, rowi, (short) 1, student2.getName());cteateCell(wb, rowi, (short) 2, student2.getSex());cteateCell(wb, rowi, (short) 3, student2.getGrade());cteateCell(wb, rowi, (short) 4, student.get(student2));}}wb.write(os);os.flush();os.close();System.out.println("文件生成");}@SuppressWarnings("deprecation")private void cteateCell(HSSFWorkbook wb, HSSFRow row, short col,String val) {HSSFCell cell = row.createCell(col);cell.setCellValue(val);HSSFCellStyle cellstyle = wb.createCellStyle();cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);cell.setCellStyle(cellstyle);}}
3.效果如下图:
4.打开可以看到数据已经写入:
5.总结:
在本次代码中,可以看到调用下载的方法的参数中,数据是被放到Map容器中的,其中的key是一个对象,value是一个分数类型是String。当然封装数据的参数也可以List类型的,只不过要看我们实际需求,如果从数据库中查出的信息不是一张表,那么就不能用一个实体对象来封装,所以可以使用map。在本次代码中,student作为map 的key,尽量在Student类中重写一下hashcode方法和equals方法,保证map的键值得唯一性。
阅读全文
0 0
- 用Java实现下载功能,并保存到excel表格中
- java SpringMVC中 POI读取数据库数据并写入Excel表格中,并实现下载功能
- java 中 excel生成并文件下载保存到本地
- jsp页面导出用jxl方式导出数据到excel表格并下载保存(第二种直接用java类实现)
- 用jxl 从jsp页面导出数据到excel表格并下载保存
- java 中 excel生成并文件下载保存到本地(三)
- JAVA 实现下载功能 保存为EXCEL格式
- java实现excel文件上传并解析内容保存到数据库中
- 保存查询结果到Excel表格中
- Java实现数据库数据导出到Excel中并下载到浏览器本地
- UE4中实现截图功能并保存到指定路径
- Android实现下载图片并保存到SD卡中
- Android实现下载图片并保存到SD卡中
- Android实现下载图片并保存到SD卡中
- Android实现下载图片并保存到SD卡中
- Android实现下载图片并保存到SD卡中
- Android实现下载图片并保存到SD卡中
- Android实现下载图片并保存到SD卡中
- 把请求中所有参数排序,并按照“参数=参数值”的模式用“&”字符拼接成字符串
- 用MATLAB做聚类分析
- 升序降序数组查找最大值
- 在 Chrome 操作系统的隐藏 Crosh shell 中,包含 10个命令
- Redis.conf配置详解【超详细】
- 用Java实现下载功能,并保存到excel表格中
- 网站安全 Spring MVC防御CSRF、XSS和SQL注入攻击
- 10-Thrift_Cpp_Win编译+Demo
- TarjanAndDisjointSetsForLCA解决批量查询问题
- 第十三周项目1---(4)Floyd算法验证
- 一个靠谱的json递归
- BZOJ3832: [Poi2014]Rally
- 听见丨Lyft在加利福尼亚州获自动驾驶汽车道路测试资格 摩拜回应与ofo合并传闻:没兴趣 没必要
- 麻酱观点|共享经济与新零售下的“新浪费”