JAVA导出CSV文件

自己备忘、顺便分享。方便你我他

类库

//我用的gradle 用maven的同志自己改一下。版本用哪个都一样。
compile('org.apache.commons:commons-csv:1.6')

工具包

我用的GBK格式,需要的自己改成UTF-8或者其他

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVPrinter;
import org.apache.commons.csv.CSVRecord;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Slf4j
public class CsvUtil {
   
	// CSV文件分隔符
	private final static String NEW_LINE_SEPARATOR = "\n";
	/** CSV文件列分隔符 */
	private static final String CSV_COLUMN_SEPARATOR = ",";
	/** CSV文件列分隔符 */
	private static final String CSV_RN = "\r\n";

	/**
	 * 写入csv文件
	 * @param headers  列头
	 * @param data     数据内容
	 * @param filePath 创建的csv文件路径
	 * @throws IOException
	 **/
	public static void writeCsvWithHeader(String[] headers, List<Object[]> data, String filePath) {
   
		// 初始化csvformat
		CSVFormat format = CSVFormat.DEFAULT.withHeader(headers);
		try {
   
			// 根据路径创建文件,并设置编码格式
			FileOutputStream fos = new FileOutputStream(filePath);
			OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");
			// 创建CSVPrinter对象
			CSVPrinter printer = new CSVPrinter(osw, format);

			if (null != data) {
   
				// 循环写入数据
				for (Object[] lineData : data) {
   
					printer.printRecord(lineData);
				}
			}
			printer.flush();
			printer.close();
		} catch (IOException e) {
   
			e.printStackTrace();
		
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值