zoukankan      html  css  js  c++  java
  • 【POI】hutool万能工具的poi使用(Excel操作)

    POI技术(hutool工具的简单使用)

    POI: java技术,操作excel文档
    hutool-excel:常用poi功能,简化封装成工具类
    写出文档数据:
    (1)导出数据报表
    ① 获得能够向excel表格中输出信息对象[流]
    	writer = ExcelUtil.getWriter("文件路径");
    	注释:excel表格文件标准后缀:*.xls、*.xlsx
    ② excel表格数据包含:
    	表头:指明当前列数据的含义
    	每行:多个单元格的数据;List<Object> | Map<字符串标题,Object>
    	表格:多行数据。List<Map<表头,Object数据>>
    ③ 将数据写出到Excel文档:writer.write(list);
    ④ 关闭流:writer.close();
    (2)向输出流中写入数据
    ① 创建一个写出的工具:ExcelWriter ew = ExcelUtil.getWriter();
    ② 将list多行数据集合写入:writer.write(list);
    ③ flush,将数据写入到指定输出流中:writer.flush(outputStream);
    ④ 关闭流:writer.close();
    (3)设置表格的sheet的名字
    writer.renameSheet("xxx")
    读入文档数据:
    ① 创建一个读入的工具:ExcelReader reader = ExcelUtil.getReader("文件路径");
    ② 读取里面的数据:List<Map<String,Object>> list = reader.readAll();
    ③ 关闭流:reader.close();
    实例代码:
    	导出:准备:导入POI的jar以及hutool的jar
    	 ①方式一:(表格信息写到对应的文件路径)
    		ExcelUtil.getWriter("文件路径");  //直接写到文件里
    	 ②方式二:(表格信息写到特定的输出流里)
    List<Person> list = new ArrayList<Person>();
    		persons.add(new Person("1001", "黄浩", 1, 18, "233456789", "郑州"));
    		persons.add(new Person("1002", "杨宁", 1, 18, "233456789", "郑州"));
    		persons.add(new Person("1003", "洪诗鹏", 1, 18, "233456789", "郑州"));
    // 重要将数据转化为hutool-excel,能够直接写出的数据结构:List<Map<String,Object>>
    		// 创建一个存储多行数据的list
    		List<Map<String, Object>> persons = new ArrayList<Map<String, Object>>();
    		for (Person person : list) {
    			// 每个person信息,代表一行数据:Map<String,person的属性>
    			Map<String, Object> map = new LinkedHashMap<String, Object>();
    			map.put("编号", person.getId());
    			map.put("名字", person.getName());
    			map.put("年龄", person.getAge());
    			map.put("地址", person.getAddress());
    			persons.add(map); // 将当前行的数据,加入persons
    		}
    		ExcelWriter writer = ExcelUtil.getWriter("D:/person.xlsx");// ①创建写出数据到文档中的工具
    		writer.renameSheet("联系人信息表");	//设置sheet的名字
    		writer.write(persons); // ②将数据写出到文档导出工具中
    		writer.flush(输出流);//输出流:可以是文件输出流,也可以是控制器的响应流进行下载
    		writer.close(); // ③关闭流
    	导入:
    		① 创建一个读入的工具:ExcelReader reader = ExcelUtil.getReader("D:/person.xlsx");
    		② 读取里面的数据:List<Map<String, Object>> list = reader.readAll();
    		③ 关闭流:reader.close();
    
  • 相关阅读:
    设计模式来替代if-else
    Cloneable接口的作用与深度克隆与浅度克隆
    IP地址分类
    MIME-TYPE
    Linux curl
    Cookie 跨域???
    冒烟测试
    @Valid、@Validated 、正则验证工具
    Node.js—第一个动态页面
    Node.js—小试牛刀-创建目录
  • 原文地址:https://www.cnblogs.com/jwnming/p/13635305.html
Copyright © 2011-2022 走看看