解析csv文件

以下内容仅为记录:

第一步:解析csv文件

    @Test
    public void testcsv() throws Exception {
        File csv = new File("C:\\Users\\hjy\\Desktop\\attendace164_20180312.csv");  // CSV文件路径
        BufferedReader br = null;
        try
        {
            br = new BufferedReader(new FileReader(csv));
        } catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
        String line = "";
        String everyLine = "";
        try {
            List<String> allString = new ArrayList<>();
            while ((line = br.readLine()) != null)  //读取到的内容给line变量
            {
                everyLine = line;
                System.out.println(everyLine);
                allString.add(everyLine);
            }
            System.out.println("csv表格中所有行数:"+allString.size());
        } catch (IOException e)
        {
            e.printStackTrace();
        }

    }

csv文件样式


解析的内容:



第二步:将数据写入csv

  @Test
    public void testcsv1(){
        //自定义数组
        ArrayList<ArrayList<String>> alldata=new ArrayList<ArrayList<String>>();
        alldata.add(new ArrayList<String>(Arrays.asList("1","11","111")));  //添加一行
        alldata.add(new ArrayList<String>(Arrays.asList("2","22","222")));  //添加一行
        alldata.add(new ArrayList<String>(Arrays.asList("3","33","333")));  //添加一行
        //保存成csv文件
        Array2CSV(alldata,"test.csv");
//        //读取csv文件
//        ArrayList<ArrayList<String>> alldata1=CSV2Array("test.csv");
//        //遍历数组
//        for (ArrayList<String> arrayList : alldata1) {
//            for (String string : arrayList) {
//                System.out.println(string);
//            }
//        }

    }

    //导出到csv文件
    public static void Array2CSV(ArrayList<ArrayList<String>> data, String path)
    {
        try {
            BufferedWriter out =new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path),"UTF-8"));
            for (int i = 0; i < data.size(); i++)
            {
                ArrayList<String> onerow=data.get(i);
                for (int j = 0; j < onerow.size(); j++)
                {
                    out.write(onerow.get(j));
                    out.write(",");
                }
                out.newLine();
            }
            out.flush();
            out.close();

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
        List<Checkins> list = checkinsQuery.asList();
        if (CollectionUtils.isNotEmpty(list)) {
            try {
                FileWriter fw = new FileWriter("data_"+ea+"_"+date+".csv");
                String header = "员工姓名,签到时间,签到地点\r\n";
                fw.write(header);
                StringBuffer str = new StringBuffer();
                list.forEach(o -> {
                    String name = o.getOwnerName();
                    String checkTime = DateUtils.getStringFromTime(o.getCheckinsTimeStamp(), DateUtils.DateTimeFormat);
                    String address = o.getCheckinsAddressDesc();
                    str.append(name).append(",")
                            .append(checkTime).append(",")
                            .append(address).append(",")
                            .append("\r\n");
                });
                fw.write(str.toString());
                fw.flush();
                fw.close();
            } catch (Exception e) {
                LOG.error("getCheckinsData error ", e);
            }
        }
        LOG.info("getCheckinsData end ea:{},date:{}", ea, date);

最终写出的结果:


扫描二维码关注公众号,回复: 1519715 查看本文章

猜你喜欢

转载自blog.csdn.net/hejingyuan6/article/details/79546339