package com.example.demo.hutool;
import cn.hutool.core.io.FileUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import org.junit.Test;
import java.util.List;
import java.util.Map;
/**
* @Description Hutool-poi是针对Apache POI的封装
*
* 使用Hutool的方法操作Office文件,Hutool提供的类有:
* ExcelUtil Excel工具类,读取的快捷方法都被封装于此。
* ExcelReader Excel读取器,Excel读取的封装,可以直接构造后使用。
* ExcelWriter Excel生成并写出器,Excel写出的封装(写出到流或者文件),可以直接构造后使用。
*
* ExcelUtil工具类的主要方法:
* static ExcelReader getReader(File bookFile)
* static ExcelReader getReader(File bookFile, int sheetIndex)
* static ExcelReader getReader(File bookFile, String sheetName)
* static ExcelReader getReader(InputStream bookStream)
* static ExcelReader getReader(InputStream bookStream, boolean closeAfterRead)
* static ExcelReader getReader(InputStream bookStream, int sheetIndex)
* static ExcelReader getReader(InputStream bookStream, String sheetName)
* static ExcelReader getReader(String bookFilePath)
* static ExcelReader getReader(String bookFilePath, int sheetIndex)
*
* static ExcelWriter getWriter()
* static ExcelWriter getWriter(File destFile)
* static ExcelWriter getWriter(File destFile, String sheetName)
* static ExcelWriter getWriter(String destFilePath)
* static ExcelWriter getWriter(String destFilePath, String sheetName)
* static ExcelWriter getWriterWithSheet(String sheetName)
*
* @Auther guofeng.xie
* @Date 2020/11/12 20:29
*/
public class TestExcelUtil {
/**
* ExcelUtil工具类的使用
*
* ExcelUtil.getReader方法只是将实体Excel文件转换为ExcelReader对象进行操作。
* 接下来请参阅章节ExcelReader对Excel工作簿进行具体操作。
*/
@Test
public void testExcelUtil() {
//1. 从文件中读取Excel为ExcelReader
//ExcelReader reader = ExcelUtil.getReader(FileUtil.file("E:\\test\\test.xlsx"));
//2. 从流中读取Excel为ExcelReader(比如从ClassPath中读取Excel文件)
//ExcelReader reader2 = ExcelUtil.getReader(ResourceUtil.getStream("static/test.xlsx"));
//3. 读取指定的sheet
ExcelReader reader3;
//通过sheet编号获取
//reader3 = ExcelUtil.getReader(FileUtil.file("static/test.xlsx"), 0);
//通过sheet名获取
reader3 = ExcelUtil.getReader(FileUtil.file("static/test.xlsx"), "sheet2");
List<Map<String, Object>> maps = reader3.readAll();
for (Map map : maps) {
map.forEach((key, value) -> {
System.out.println(key + ":" + value);
});
}
}
}