以下内容仅为记录:
第一步:解析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);
最终写出的结果: