阿里云开发者社区

电脑版
提示:原网页已由神马搜索转码, 内容由developer.aliyun.com提供.

导出csv格式的文件

2024-05-0743
版权
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
简介:导出csv格式的文件

项目要求导出csv格式的文本,特此记录一下,中间还是遇到了不少的问题

在Java中,你可以使用不同的库来导出CSV格式的文件。我将向你展示一个简单的例子,使用纯Java和字符串操作来创建CSV文件。但是,请注意,对于大型数据集,使用专门的CSV库(如Apache Commons CSV或OpenCSV)会更有效。

import java.io.FileWriter;  import java.io.IOException;    public class CsvExporter {        public static void main(String[] args) {          String csvFile = "path/to/your/file.csv";          FileWriter writer = null;            try {              writer = new FileWriter(csvFile);                // 写入标题行              String header = "Column1,Column2,Column3";              writer.append(header);              writer.append('\n');                // 写入一些数据              String data1 = "Data1";              String data2 = "Data2";              String data3 = "Data3";                String line = data1 + "," + data2 + "," + data3;              writer.append(line);              writer.append('\n');                // 这只是一个例子,你可以根据需要添加更多数据                System.out.println("CSV file was created successfully !!!");            } catch (Exception e) {              System.out.println("Error in CsvFileWriter...");              e.printStackTrace();          } finally {              try {                  writer.flush();                  writer.close();              } catch (IOException e) {                  System.out.println("Error while flushing/closing writer...");                  e.printStackTrace();              }          }      }  }

如何使用POI

List<List<Object>> dataList=new ArrayList<>();            for (TestEntitytestEntity:            addTest) {                List<Object> data= new ArrayList<>();                data.add(testEntity.getName());                data.add(testEntity.getUserid());                if (stringListMap.size()>0){                    data.add(stringListMap.get(testEntity.getOwOpenid()).getPhone());                    data.add(stringListMap.get(testEntity.getOwOpenid()).getNickName());                }                dataList.add(data);            }
// poi导出csv            List<Object> headList=new ArrayList<>();            headList.add("name");            headList.add("userId");            headList.add("phone");            headList.add("nickname");      Date date = new Date();            String format = new SimpleDateFormat("yyyy-mm-dd").format(date);            String hh = new SimpleDateFormat("HH").format(date);            String fileName=format+"快照数据"+hh;            CSVUtil.createCSVFile(response,headList,dataList,fileName);

CSV文件导出工具类

package com.zkys.product.common.utils;
import javax.servlet.http.HttpServletResponse;import java.io.*;import java.net.URLEncoder;import java.util.List; /** * * CSV文件导出工具类 * * @author qixin * @description TODO * @data 2018/7/10 19:25 * Version 1.0 */public class CSVUtil{     /**     * CSV文件生成方法     * @param     * @param head     * @param dataList     * @param filename     */    public static void createCSVFile(HttpServletResponse response, List<Object> head, List<List<Object>> dataList,                                     String filename) {        File csvFile = null;        BufferedWriter csvWtriter = null;        InputStream in = null;        OutputStream out = null;        try {            csvFile=new File("./"+filename+".csv");
            // GB2312使正确读取分隔符","            csvWtriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(                    csvFile), "GBK"), 1024);
            // 写入文件头部            writeRow(head, csvWtriter);             // 写入文件内容            for (List<Object> row : dataList) {                writeRow(row, csvWtriter);            }            csvWtriter.flush();
            in = new FileInputStream(csvFile);            int len = 0;            byte[] buffer = new byte[1024*1024*5];            out = response.getOutputStream();            response.reset();
            // 设置此response为文件下载响应            response.setContentType("application/csv;charset=UTF-8");            response.setHeader("Content-Disposition",                    "attachment; filename=" + URLEncoder.encode(csvFile.getName(), "UTF-8"));            response.setCharacterEncoding("UTF-8");            // 先写UTF-8文件标志头            out.write(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });            while ((len = in.read(buffer)) > 0) {                out.write(buffer, 0, len);            }            out.flush();        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                if (in != null) {                    in.close();                }                if (out != null) {                    out.close();                }                if (csvFile != null) {                    csvFile.delete();                }                if (csvWtriter != null) {                    csvWtriter.close();                }            } catch (IOException e) {                e.printStackTrace();            }        }    }     /**     * 写一行数据方法     * @param row     * @param csvWriter     * @throws IOException     */    private static void writeRow(List<Object> row, BufferedWriter csvWriter) throws IOException {        // 写入文件头部        for (Object data : row) {            StringBuffer sb = new StringBuffer();            String rowStr = sb.append("\"").append(data).append("\",").toString();            csvWriter.write(rowStr);        }        csvWriter.newLine();    }}


文章标签:
目录
相关文章
|
1月前
|
存储Python
使用CSV模块读取CSV文件--含代码
使用CSV模块读取CSV文件--含代码
|
数据处理
R|批量循环处理同一格式文件-csv,txt,excel
R|批量循环处理同一格式文件-csv,txt,excel
|
数据处理Python
多线程操作CSV文件并且将CSV文件转成XLSX文件
多线程操作CSV文件并且将CSV文件转成XLSX文件
|
关系型数据库数据库PostgreSQL
导出CSV文件
导出CSV文件
36500
es数据导出csv文件
es数据导出csv文件
|
存储ShellPython
Python模块之CSV导出(一)
Python模块之CSV导出(一)
Python模块之CSV导出(一)
Biopython:Fasta格式转CSV格式
Biopython:Fasta格式转CSV格式
36500
Biopython:Fasta格式转CSV格式
CSV 文档格式
csv 中的第一行表示字段名,第二行表示字段值 比如你要实现下列静态数据: [ { "x": "1月", "y": 2, "s": "蒸发量" }, { "x": "1月", "y": 2.
|
PythonWindows