• csv


    当大家进行这一操作的时候通常会遇到如下问题。

    1: 想分割数据 例如:

    "123","Jack jona","Computer science"

    "234","Joen Dan", "Philosophy"

    //当遇到这种数据的时候可直接用  逗号进行分割。

    2: 分割数据如下:

    "123", "jack jona", "New York, NY"

    "234", "Lee Jack", "Fort myers, FL"

    //当遇到这种数据的时候可以直接使用 

    ,(?=([^"]*"[^"]*")*[^"]*$)

    3.匹配是否是整数:

    Pattern pattern = Pattern.compile("^[-\+]?[\d]*$");
    pattern.matcher(str).matches()

    4.下载csv模板:

    public void downCsvModel(HttpServletRequest request, HttpServletResponse resp) {
    try {
    resp.setHeader("Content-Disposition","attachment; filename=anti.csv");
    OutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream(), "GBK");
    String head = "字段一,字段二,字段三,";
    osw.write(new String(new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF }));//设置头部属性
    osw.write(head);
    osw.flush();
    osw.close();
    } catch (Exception e) {
    logger.error(e.getLocalizedMessage());
    }
    }

    5.文件流导入csv模板

    Controller:

    @PostMapping("uploadcsv")
    @ResponseBody
    public void uploadCsv(@RequestBody MultipartFile file) {//方法返回值根据实际情况而定
    try {
    service.uploadInfoCsv(file.getInputStream());//service已预先加载实例
    } catch (IOException e) {
    e.getMessage();
    }
    }

    Service:

    public void uploadInfoCsv(InputStream inputStream) {
    try {
    BufferedReader br = new BufferedReader(
    new InputStreamReader(inputStream),"GBK");//编码格式
    boolean f = false;//跳过第一行
    String str = null;
    while ((str = br.readLine()) != null){
    if (!f) {
    f = true;
    continue;
    }
    rowOption(str,entitys,result,msg);//行操作
    }
    br.close();
    inputStream.close();
    } catch (Exception e) {
    logger.error(e.getLocalizedMessage());
    return Result.newError();
    }
    }

    6. split 逗号分隔,保留空值

    最后的几个空值希望按空值来存

    这时只使用split(",")会产生问题。

    可改为split(",",-1)

    听说学习能够让青春永驻。
  • 相关阅读:
    3.27上午
    3.24上午 补
    2017.3.27下午
    2017.3.27上午
    2017.3.24下午
    2017.3.24上午
    2017.3.23下午
    2017.3.23上午
    2017.3.22上午
    2017.3.21下午
  • 原文地址:https://www.cnblogs.com/chenyf/p/9035896.html
Copyright © 2020-2023  润新知