csv文件,其实就可以理解为操作“,”
写入csv
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.text.SimpleDateFormat; import java.util.Date; public class WriteCsvUtils { /** * @param args */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Date date = new Date(); // 利用生成的时间生成文件名 以防止文件重复 造成覆盖文件的结果 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); // 写出生成csv文件 File file = new File("D:/Tonicare/Desktop/" + sdf.format(date) + ".csv"); // 追记模式 BufferedWriter bw = new BufferedWriter(new FileWriter(file, true)); bw.write("2014年上映电影大合集"); for (int i = 0; i < 3; i++) { bw.newLine(); // 新增一行数据 可以理解为换行重新编辑新的信息到csv文件 bw.write("美国队长" + "," + "201404" + "," + "已上映"); bw.newLine(); bw.write("小时代3刺金时代" + "," + "20140714" + "," + "已上映"); bw.newLine(); bw.write("秦时明月" + "," + "20140808" + "," + "已上映"); } bw.close(); } }
2.读取csv文件
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.StringTokenizer; public class ReadCsvUtils { /** * @param args */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub //CSV读取操作 //CSV文件读取主要用到java.io.BufferedReader类和java.util.StringTokenizer类, //BufferedReader用来读入文件,StringTokenizer用来将一行数据分成多个字段。 File file=new File("C:/Users/Tonicare/Desktop/8.31.csv"); BufferedReader br=new BufferedReader(new FileReader(file)); //读取直到最后一行 String line=""; while((line=br.readLine())!=null){ //把一行数据分割成多个字段 StringTokenizer st=new StringTokenizer (line,","); while(st.hasMoreTokens()){ //每一行的多个字段用tab隔开表示 System.out.println(st.nextToken()+"\t"); } System.out.println(); } br.close(); } }
实例运用
public String WriteExcel(SalesVolumeTMallListVo vo) { // TODO Auto-generated method stub String result = StringUtils.EMPTY; try{ // 生成csv文件 result = Config.APP_PATH + File.separator + "report" + File.separator + vo.getFileName()+ ".csv"; FileOutputStream fos = new FileOutputStream(result);// 写出生成csv文件 OutputStreamWriter oWriter=new OutputStreamWriter(fos,Charset.forName("GBK"));//文字编码格式 // 追记模式 BufferedWriter bw = new BufferedWriter(oWriter); bw.write(vo.getFileName()); bw.newLine(); bw.write("品牌"+","+"类目"+","+"产品条码"+","+"保质期"+","+"规格"+","+"产品名称"+","+"报站价"+","+"正常售价"+","+"促销价"+","); if(!Const.CHECKBOX_CHECKED.equals(vo.getUnidCheck())){ bw.write("华东扣点"+","+"华南扣点"+","+"华北扣点"+","+"华东销售毛利"+","+"华北销售毛利"+","+"华南销售毛利"+","); } bw.write("华东期初库存"+","+"华南期初库存"+","+"华北期初库存"+","); for (int i = 1; i <32; i++) { bw.write("华东总-"+i+","+"华东无线-"+i+","); bw.write("华南总-"+i+","+"华南无线-"+i+","); bw.write("华北总-"+i+","+"华北无线-"+i+","); } bw.write("月累计华东总"+","+"月累计华东无线"+","); bw.write("月累计华南总"+","+"月累计华南无线"+","); bw.write("月累计华北总"+","+"月累计华北无线"+","); bw.write("月累计总"+","+"月累计无线"+","); for (int i = 1; i <32; i++) { bw.write("华东-"+i+"号补货"+","); bw.write("华南-"+i+"号补货"+","); bw.write("华北-"+i+"号补货"+","); } bw.write("华东月补货合计"+","); bw.write("华南月补货合计"+","); bw.write("华北月补货合计"+","); bw.write("总计"+","); bw.write("华东期末库存"+","+"华南期末库存"+","+"华北期末库存"+","); if(!Const.CHECKBOX_CHECKED.equals(vo.getUnidCheck())){ bw.write("华东期末库存可销售天数"+","+"华东期末库存可销售月数"+","); bw.write("华南期末库存可销售天数"+","+"华东期末库存可销售月数"+","); bw.write("华北期末库存可销售天数"+","+"华东期末库存可销售月数"+","); bw.write("华东上月平均每天销量"+","+"华南上月平均每天销量"+","+"华北上月平均每天销量"+","); } Map<String,Map<String,Map<String, TMallMonthRowVo>>> map=vo.getMap();//查询得到的数据存放在vo中 map中string分别是品牌 类别 产品编码 Iterator it=map.keySet().iterator(); while(it.hasNext()){ String key; Map<String,Map<String, TMallMonthRowVo>> value; key=it.next().toString(); //品牌 value=map.get(key); Iterator it2=value.keySet().iterator(); while(it2.hasNext()){ String key2=it2.next().toString();//分类 Map<String, TMallMonthRowVo> value2=value.get(key2); Iterator it3=value2.keySet().iterator(); while(it3.hasNext()){ for (int i = 0; i < value2.size(); i++) { String key3=it3.next().toString(); TMallMonthRowVo bean=value2.get(key3); bw.newLine(); // 新增一行数据 可以理解为换行重新编辑新的信息到csv文件 bw.write(key+ "," +key2+ "," +bean.getCode()+ "," +bean.getPeriod()+ "," +bean.getSpec()+ "," +bean.getShopName() + "," +bean.getPriceQuote()+ ","+bean.getPriceStock()+ ","+bean.getPriceSale()+ "," +bean.getBeginMonthStore().get(0)+ ","+bean.getBeginMonthStore().get(1)+ ","+bean.getBeginMonthStore().get(2)+ ","); if(!Const.CHECKBOX_CHECKED.equals(vo.getUnidCheck())){ bw.write(bean.getPoints().get(0)+ ","+bean.getPoints().get(1)+ ","+bean.getPoints().get(2)+ "," +bean.getProfit().get(0)+ ","+bean.getProfit().get(1)+ ","+bean.getProfit().get(2)+ ","); } List<SalesTMallAmountVo> beansales=bean.getTmsales(); for (int j = 0; j <beansales.size(); j++) { SalesTMallAmountVo beanVo=new SalesTMallAmountVo(); beanVo.setHdAll(beansales.get(j).getHdAll()); beanVo.setHdPhone(beansales.get(j).getHdPhone()); beanVo.sethNAll(beansales.get(j).gethNAll()); beanVo.sethNPhone(beansales.get(j).gethNPhone()); beanVo.sethBAll(beansales.get(j).gethBAll()); beanVo.sethBPhone(beansales.get(j).gethBPhone()); bw.write(beanVo.getHdAll()+","+beanVo.getHdPhone()+ ","+beanVo.gethNAll()+ ","+beanVo.gethNPhone()+ ","+beanVo.gethBAll()+ ","+beanVo.gethBPhone()+ ","); } bw.write(bean.getSumHdSales()+","+bean.getSumHdPhoneSales()+","+bean.getSumHnSales()+","+bean.getSumHnPhoneSales()+","+bean.getSumHbSales()+","+bean.getSumHbPhoneSales()+","); bw.write((bean.getSumHdSales()+bean.getSumHnSales()+bean.getSumHbSales())+","+(bean.getSumHdPhoneSales()+bean.getSumHnPhoneSales()+bean.getSumHbPhoneSales())+","); List<SalesTmallRephinVo> beanrephio=bean.getTmrephins(); for (int j = 0; j <beanrephio.size(); j++) { SalesTmallRephinVo beanreRephinVo=new SalesTmallRephinVo(); beanreRephinVo.sethDRephins(beanrephio.get(j).gethDRephins()); beanreRephinVo.sethNRephins(beanrephio.get(j).gethNRephins()); beanreRephinVo.sethBRephins(beanrephio.get(j).gethBRephins()); bw.write(beanreRephinVo.gethDRephins()+","+beanreRephinVo.gethNRephins()+ ","+beanreRephinVo.gethBRephins()+ ","); } bw.write(bean.getSumHdRephins()+","+bean.getSumHnRephins()+","+bean.getSumHbRephins()+","+(bean.getSumHdRephins()+bean.getSumHnRephins()+bean.getSumHbRephins())+","); //期末库存 bw.write(bean.getEndMonthStore().get(0)+","+bean.getEndMonthStore().get(1)+","+bean.getEndMonthStore().get(2)+","); if(!Const.CHECKBOX_CHECKED.equals(vo.getUnidCheck())){ bw.write(bean.getAvgSales().get(0)+","+bean.getAvgSales().get(1)+","+bean.getAvgSales().get(2)+","+bean.getAvgSales().get(3)+","+bean.getAvgSales().get(4)+","+bean.getAvgSales().get(5)+","); bw.write(bean.getLastAvgonthList().get(0)+","+bean.getLastAvgonthList().get(1)+","+bean.getLastAvgonthList().get(2)+","); } } } } } bw.close(); oWriter.close(); fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); LogHelper.error(e.getMessage()); } return result; }