package com.yu.service.Impl;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.yu.entity.AAA;
import com.yu.entity.BBB;
import com.yu.entity.CCC;
import com.yu.mapper.AAAMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@Service
public class AAAImpl {
@Autowired
private AAAMapper aaaMapper;
public void SelectZhicheng() {
ExcelWriter writer = ExcelUtil.getWriter("d:/write.xlsx");
List<AAA> aaa = aaaMapper.aaa();
List<BBB> bbbs = new ArrayList<>();
HashMap<String, HashSet<String>> map = new HashMap<>();
aaa.forEach(t -> {
if (t.getJobTitle()==null||t.getJobTitle()=="") return;
List<String> strings = Arrays.asList(t.getJobTitle().split(" "));
HashSet<String> set = map.get(t.getChainNode());
if(set!=null)
set.addAll(strings);
else {
HashSet<String> values = new HashSet<>();
values.addAll(strings);
map.put(t.getChainNode(),values);
}
});
map.forEach((k, v) -> {
for (String value : v) {
System.out.println(k + "---->" + value);
BBB bbb = new BBB();
bbb.setShuju(k);
bbb.setZhuozhe(value);
bbbs.add(bbb);
}
});
writer.passCurrentRow();
//一次性写出内容,强制输出标题
writer.write(bbbs,true);
//关闭writer,释放内存
writer.close();
}
public void SelectFangxiang() {
ExcelWriter writer = ExcelUtil.getWriter("d:/write1.xlsx");
List<AAA> aaa = aaaMapper.aaa();
List<CCC> cccs = new ArrayList<>();
HashMap<String, HashSet<String>> map = new HashMap<>();
aaa.forEach(t -> {
if (t.getResearchDirection()==null||t.getResearchDirection()=="") return;
List<String> strings = Arrays.asList(t.getResearchDirection().split(","));
HashSet<String> set = map.get(t.getChainNode());
if(set!=null)
set.addAll(strings);
else {
HashSet<String> values = new HashSet<>();
values.addAll(strings);
map.put(t.getChainNode(),values);
}
});
map.forEach((k, v) -> {
for (String value : v) {
System.out.println(k + "---->" + value);
CCC ccc = new CCC();
ccc.setShuJU(k);
ccc.setFangXiang(value);
cccs.add(ccc);
}
});
writer.passCurrentRow();
//一次性写出内容,强制输出标题
writer.write(cccs,true);
//关闭writer,释放内存
writer.close();
}
}
这里写了两个方法 ,只需要看其中一个
首先定义了一个map方法 里面存的是字符串和HasSet
这里的aaa是查到数据库里面的所有值
通过foreach去一条一条的遍历(想清楚 是一条值 一条值的意思是数据库中的一行 也是一条记录的意思)
首先判断你要的空格是空的还是空字符
接下来用spilt()把你的String转化成一个数组并且去除了逗号,再通过Arrays.asList成为一个List集合,把分割出的值放在strings里面
map通过get方法获取了set空间
这时候要判断这个空间中的单元格是否为空,不为空就把所有切割到的值塞进set中
如果为空的话就把切割过的值塞到values,通过map放键和值
这里用set是为了所有放进去的值不重复
下面是做个循环输出,由于writer写出的是个List类型 就创建对象,通过属性分别把键和值塞进去,这样就可以变成List啦 因为java是强类型语言 所以要时刻思考类型的转换