解析上传的文件

1.直接解析

https://blog.csdn.net/weixin_40452506/article/details/105430122

2.POI解析

https://www.cnblogs.com/SimonHu1993/p/8202391.html

现在有个问题是,我接受上传的类型是MultipartFile file

但是使用POI框架解析文件需要路径或者IO上传的文件

所以就不能使用框架

现在有一个解决办法就是把MultipartFile类型转成File

https://blog.csdn.net/sdut406/article/details/85647982

这么做有个问题就是会生成本地临时文件,生成临时文件会造成什么影响吗?

3.easyExcel解析

https://www.yuque.com/easyexcel/doc/read#8e72a573

华丽丽的不用POI,用easyExcel

List<Object> objList = EasyExcelFactory.read(file.getInputStream(), new Sheet(1, 0));

这个List<Object>类型需要转换

https://www.cnblogs.com/xingmangdieyi110/p/11676553.html

package platform.core.util;

import java.util.ArrayList;
import java.util.List;

public class ListUtil {
    /**
     * 把Object类型转为List<>
     *
     * @param obj ,clazz 需要转换的List对象,传入List中元素的class
     * @return 结果
     */
    public static <T> List<T> castList(Object obj, Class<T> clazz)
    {
        List<T> result = new ArrayList<T>();
        if(obj instanceof List<?>)
        {
            for (Object o : (List<?>) obj)
            {
                result.add(clazz.cast(o));
            }
            return result;
        }
        return null;
    }
}

判断multilpartfile文件的类型

https://blog.csdn.net/dxyzhbb/article/details/102457655

解析完成之后转换类型,然后保存到数据库,保存数据库的操作还是基于mybatis的批量处理,这个部分可能还需要改进。

    public void uploadData(MultipartFile file) {
        CellClusterPO cellclusterPo = new CellClusterPO();
        Date date = new Date();
        cellclusterPo.setVersionTime(date);
        List<CellClusterPO> saveCluster = new ArrayList<>();
        try {
            List<Object> objList = EasyExcelFactory.read(file.getInputStream(), new Sheet(1, 0));
            for(Object obj:objList) {
                List<String> list = castList(obj, String.class);
                cellclusterPo.setCgi(list.get(0));
                cellclusterPo.setOptimizedArea(new Integer(list.get(1)));
                saveCluster.add(cellclusterPo);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        boolean insert = cellClusterService.save(saveCluster);
        log.info("result: {}", insert);
    }

4.解析CSV文件

https://www.cnblogs.com/houbbBlogs/articles/11061141.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值