java opencsv_Java opencsv

本文展示了如何在Java中使用Opencsv库进行CSV文件的导入和导出。通过`CSVReader`读取上传的GBK编码CSV文件,并打印内容。同时,利用`CSVWriter`将数据写入CSV文件并提供下载。代码中还涉及到Spring MVC的控制器方法及MultipartFile处理。
摘要由CSDN通过智能技术生成

com.opencsv

opencsv

4.1

package com.in.out.mine.controller;

import com.in.out.mine.ServiceImpl.FileServiceImpl;

import com.in.out.mine.entity.Student;

import com.in.out.mine.utils.ResObject;

import com.opencsv.CSVReader;

import com.opencsv.CSVWriter;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

import java.io.*;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

@Controller

public class FileController {

@Autowired

private FileServiceImpl fileService;

@RequestMapping(value = "/export", method = RequestMethod.GET)

public String toExport() {

return "export";

}

@ResponseBody

@RequestMapping(value = "/import", method = RequestMethod.POST)

public ResObject importFunction(HttpServletResponse response, MultipartFile file) throws IOException {

InputStreamReader isr = new InputStreamReader(file.getInputStream(),"gbk");

CSVReader csvReader = new CSVReader(isr);

List ret = csvReader.readAll();

System.out.println(ret.get(0)[1]);

System.out.println(ret.get(0)[2]);

System.out.println(ret.get(0)[3]);

String[] a = csvReader.readNext();

long bb = csvReader.getLinesRead();

long cc = csvReader.getRecordsRead();

List studentList = fileService.export();

return new ResObject();

}

@ResponseBody

@RequestMapping(value = "/export/download", method = RequestMethod.GET)

public void export(HttpServletResponse response) throws IOException {

List studentList = fileService.export();

response.setHeader("Content-Type","text/csv; charset=gbk");

response.setHeader("Content-Disposition","attachment; filename=export_"+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+".csv");

try(

OutputStream outputStream = response.getOutputStream();

PrintWriter printWriter = new PrintWriter(outputStream);

) {

printWriter.println("id,姓名,地址,描述");

studentList.forEach(student -> {

printWriter.println(String.format("%s,%s,%s,%s",

String.valueOf(student.id),

student.name,

student.address,

student.desc)

);

});

}

}

@ResponseBody

@RequestMapping(value = "/export/download2", method = RequestMethod.GET)

public void export2(HttpServletResponse response) throws IOException {

List studentList = fileService.export();

response.setHeader("Content-Type","text/csv; charset=gbk");

response.setHeader("Content-Disposition","attachment; filename=export_"+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+".csv");

CSVWriter csvWriter = new CSVWriter(response.getWriter());

// try(

// OutputStream outputStream = response.getOutputStream();

// PrintWriter printWriter = new PrintWriter(outputStream);

{

String [] title = {"id","姓名","地址","描述"};

csvWriter.writeNext(title);

studentList.forEach(student -> {

String[] content = new String[]{

String.valueOf(student.id),

student.name,

student.address,

student.desc

};

csvWriter.writeNext(content);

});

}

}

}

Title

下载

下载2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值