根据hutool的excel,此代码是从excel中通过map集合取出键值对,通过键去查值,把查出来的值放到集合中,通过writer输出,怎么说呢,讲的很笼统,仔细看看代码吧:
这里用getReader读取到文件后,readall方法把内容全部读出来放到LIst集合中,用迭代器读到其中map集合中的数据,每读一次就用map中的get方法分别把”政策名称“,”截取关键字“这两个键对应的值分别放到List集合中和Set集合中。。。。。。(后面自己想~)
package com.yu.study;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import java.util.*;
public class Read {
public static void main(String[] args) {
ExcelReader reader1 = ExcelUtil.getReader("E:\\java-project\\TransferStudy\\src\\main\\resources\\com\\yu\\mapper\\aaa.xls");
List<Map<String, Object>> readAll1 = reader1.readAll();
Iterator<Map<String, Object>> iterator = readAll1.iterator();
List<String> listss = new ArrayList<>();
List<List<String>> lists = new ArrayList<>();
Set<String> keys = new HashSet();
while (iterator.hasNext()) {
Map<String, Object> next1 = iterator.next();
String o = (String) next1.get("政策名称");
listss.add(o);
String o1 = (String) next1.get("截取关键词");
if (o1 != null) keys.add(o1);
}
Object[] objects1 = listss.toArray();
System.out.println(objects1.toString());
for (int i = 0; i < objects1.length; i++) {
List<String> writeList = new ArrayList<>();
StringBuilder sb = new StringBuilder();
if (objects1[i] != null) {
for (String t : keys)
try {
if (objects1[i].toString().indexOf(t) >= 0) {
sb.append(t).append(",");
}
} catch (NullPointerException e) {
e.printStackTrace();
System.out.println("报错");
}
if (sb != null && sb.length() > 0)
sb.deleteCharAt(sb.length() - 1);
writeList.add(objects1[i].toString());
writeList.add(sb.toString());
}
lists.add(writeList);
}
ExcelWriter writer = ExcelUtil.getWriter("d:/writeTest.xls");
writer.passCurrentRow();
writer.write(lists, true);
writer.close();
}
}