poi导入excel中具有子父级关系的数据到目录树的某个节点上
excle数据格式
导入过后的树节点

导入后的数据库里面的数据

代码
/**
* @description: 上传目录结构
* @params: [fileViewModel]base64="UEsDBAoAAAAAAIdO4kAAAAAA..." fileName="选中目录的id" fileType="上传文件的格式后缀xlsx"
* @author:
* @Date: 2019/10/10
*/
@Override
public Map<String, List<ImportRowResult>> importFile(FileViewModel fileViewModel) {
if (fileViewModel.getBase64().equals("{}")) {
throw new JrsfException(" 请选择导入的文件");
}
//获取选中的目录节点
String rootFloderId = fileViewModel.getFileName();
JPAQueryFactory queryFactory = new JPAQueryFactory(getDao().getEntityManager());
QFloder qFloder = QFloder.floder;
//查询数据库中所有的目录
List<Floder> floders = queryFactory.selectFrom(qFloder).fetch();
//得到右键选中的根目录的名字
Floder rootFloder = floders.stream().filter(i -> i.getId().equals(rootFloderId)).collect(Collectors.toList()).get(0);
String rootFloderName = rootFloder.getName();
// 查询选中节点下全部数据
List<Floder> floderList = new ArrayList<>();
findFloderChildren(rootFloder, floders, floderList);
// 添加自己
floderList.add(rootFloder);
// 获取导入数据
// Gkbim/static/02409dba142e430cb74170cbf77621eea52f722807cbb191faa27df2909708gf.xlsx
String fileName = path + EvString.getUUID() + fileViewModel.getFileName();
if (!EvString.isEmpty(fileViewModel.getFileType())) {
//加格式后缀
fileName += "." + fileViewModel.getFileType();
}
//生成文件
File file = EvCommonTool.base64ToFile(fileViewModel.getBase64(), fileName);
//读Excel文件
List<ArrayList<String>> arrayLists = ReadExcel(file.getAbsolutePath());
// 移除第一行无用数据
arrayLists.remove(0);
//得到层级关系
for (int i = 0; i < arrayLists.size(); i++) {
int z

最低0.47元/天 解锁文章
1669

被折叠的 条评论
为什么被折叠?



