Java opencsv

<!-- https://mvnrepository.com/artifact/com.opencsv/opencsv -->
        <dependency>
            <groupId>com.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>4.1</version>
        </dependency>
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<String[]> 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<Student> studentList = fileService.export();

       return new ResObject();
    }

    @ResponseBody
    @RequestMapping(value = "/export/download", method = RequestMethod.GET)
    public void export(HttpServletResponse response) throws IOException {

        List<Student> 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<Student> 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);
            });
        }
    }

}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>
    <form method="post" action="/import" enctype="multipart/form-data">
        <input type="file" name="file" value="update"/>
        <input type="submit" value="提交"/>
    </form>



    <a href="/export/download">下载</a>

    <a href="/export/download2">下载2</a>
</body>
</html>

猜你喜欢

转载自my.oschina.net/u/2490316/blog/1623780
今日推荐