java生成CSV文件

内容简介

本文内容使用java实现数据生成CSV文件,有关CSV文件知识请参考:CSV (逗号分隔值文件格式)

实现代码(仅供参考,请根据实现情况来修改)

/**
 * 坐标点参数实体类
 */
public class PointsParamDto {
    /**
     * 坐标id(由1开始,累加1,这样的:1,2,3,4,5...)
     */
    private String pointId;

    /**
     * X 坐标点
     */
    private String x;

    /**
     * X 坐标点
     */
    private String y;

    public PointsParamDto(){}

    public PointsParamDto(String pointId,String x,String y){
        this.pointId = pointId;
        this.x = x;
        this.y = y;
    }

    public String getPointId() {
        return pointId;
    }

    public void setPointId(String pointId) {
        this.pointId = pointId;
    }

    public String getX() {
        return x;
    }

    public void setX(String x) {
        this.x = x;
    }

    public String getY() {
        return y;
    }

    public void setY(String y) {
        this.y = y;
    }

    public String toRow(){
        return String.format("%s,%s,%s",this.pointId,this.x,this.y);
    }
}

PointsParamDto

/**
 * 生成csv文件
 * @param pointsList
 * @return
 */
private void PointsToCsvFile(List<PointsParamDto> pointsList){
    if (pointsList!=null && pointsList.size() > 0){
        // 表格头
        String[] headArr = new String[]{"PointId", "X", "Y"};
        //CSV文件路径及名称
        LocalDateTime localDateTime = LocalDateTime.now();
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
        String filePath = "E:\\TestCsvDirectory"; //CSV文件路径
        String fileName = "CSV_"+ df.format(localDateTime) +".csv";//CSV文件名称
        File csvFile = null;
        BufferedWriter csvWriter = null;
        try {
            csvFile = new File(filePath + File.separator + fileName);
            File parent = csvFile.getParentFile();
            if (parent != null && !parent.exists()) {
                parent.mkdirs();
            }
            csvFile.createNewFile();

            // GB2312使正确读取分隔符","
            csvWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(csvFile), "GB2312"), 1024);

            //这部分在第一行居中展示文件名称,根据实际情况,可选择取消注释
            /*int num = headArr.length / 2;
            StringBuffer buffer = new StringBuffer();
            for (int i = 0; i < num; i++) {
                buffer.append(",");
            }
            csvWriter.write(buffer.toString() + fileName + buffer.toString());
            csvWriter.newLine();*/

            // 写入文件头部标题行
            csvWriter.write(String.join(",", headArr));
            csvWriter.newLine();

            // 写入文件内容
            for (PointsParamDto points : pointsList) {
                csvWriter.write(points.toRow());
                csvWriter.newLine();
            }
            csvWriter.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                csvWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

调用

List<PointsParamDto> pointsParamDtos = new ArrayList<>();
pointsParamDtos.add(new PointsParamDto("1","62.05932617","54.60449277"));
pointsParamDtos.add(new PointsParamDto("2","62.42138672","54.06616269"));
pointsParamDtos.add(new PointsParamDto("3","63.22387695","52.02270566"));
pointsParamDtos.add(new PointsParamDto("4","61.32324219","53.60449277"));
pointsParamDtos.add(new PointsParamDto("5","62.68603516","54.03320371"));
PointsToCsvFile(pointsParamDtos);

结果

生成文件如下图:

打开效果如下:

原文地址:https://www.cnblogs.com/codecat/p/11083530.html

时间: 2024-10-07 02:17:01

java生成CSV文件的相关文章

POI以SAX方式解析Excel2007大文件(包含空单元格的处理) Java生成CSV文件实例详解

http://blog.csdn.net/l081307114/article/details/46009015 http://www.cnblogs.com/dreammyle/p/5458280.html . Office2007与Office Open XML 在Office 2007之前,Office一直都是以二进制位的方式存储,但这种格式不易被其它软件拿来使用,在各界的压力下,MicroSoft于2005年发布了基于XML的ooxml开放文档标准.ooxml的xml schema强调减

Java生成CSV文件实例详解

本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputS

记一次java生成csv文件乱码的解决过程 (GB2312编码)

系统:win7 (格式:中文(简体,中国)) 工具:Eclipse (默认编码utf-8) 服务两个:[restful接口]  和 [服务*** server]. 场景:[服务*** server]多次调用[restful接口],每次[restful接口]会返回一个生成好的csv文件内容.[服务*** server]将每次[restful接口]返回的csv内容保存成一个csv文件.并将生成的多个csv文件打包成一个zip压缩包. [restful接口]:根据一组数据生成csv文件 1. java

java 生成 csv文件

一.csv文件 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据.CSV文件由任意数目的记录组成,记录间以某种换行符分隔:每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符.通常,所有记录都有完全相同的字段序列. CSV是一种通用的.相对简单的文件格式,被用户.商业和科学广泛应用.最广泛

java将数据生成csv文件

1,httpRequest接口触发进程[或者可以换成其他方式触发] /** * 出入库生成CSV文件 * @param req * @param params * @return */@RequestMapping(value = "explanCsvFileToOrder")ResponseMessage explanCsvFileToOrder(HttpServletRequest req, @RequestParam Map<String, String> param

java 对CSV 文件的读取与生成

CSV文件是以逗号分隔值的文件格式,一般用WORDPAD或记事本(NOTE),EXCEL打开.CSV(逗号分隔值)是一种用来存储数据的纯文本文件,通常都是用于存放电子表格或数据的一种文件格式,对于CSV文件的读取与生成其实很简单,只要读取的时候用(,)进行切割就可以获得相应的列元素,在生成的时候不同的列元素之间加上(,) demo如下: //读取CSV文件 public void readCsvFile(String fileName) throws IOException { Buffered

使用commons-csv生成.csv文件

做个代码笔记,方便以后看. commons-csv-1.1.jar的源码:https://github.com/apache/commons-csv CsvFileBuilder.java类 package com.huihui.main; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; im

php服务器端生成csv文件

/** * 将数组动态输出至 csv 文件[服务器端生成文件] * @param array $data 二维数组 * @param string $filename 文件名 */ function writeCsv($data, $filename = 'file.csv') { $fp = fopen($filename, 'w'); foreach ($data as $fields) { fputcsv($fp, $fields); } fclose($fp); } php服务器端生成c

java生成excel文件工具类实例

import java.io.File; import java.io.IOException; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; import org.