Hutool 读取csv文件和输出csv文件
发布日期:2021-05-07 20:08:37 浏览次数:21 分类:精选文章

本文共 3722 字,大约阅读时间需要 12 分钟。

Spring Boot CSV??????

????

????????Spring Boot???Hutool?????????CSV????????????????????????Spring Boot????????CSV???

????

package com.example.csvdemo.bean;
import lombok.Data;
@Data
public class CsvEntity {
private String name;
private String type;
}

Controller??

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.text.csv.CsvReader;
import cn.hutool.core.text.csv.CsvWriter;
import cn.hutool.core.util.CharsetUtil;
import com.example.csvdemo.bean.CsvEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
@RestController
public class CsvController {
@GetMapping("/getCsv")
public void getCsv(HttpServletResponse response, HttpServletRequest request) {
List
csvEntities = new ArrayList<>();
// ????
for (int i = 0; i < 5; i++) {
CsvEntity csvEntity = new CsvEntity();
csvEntity.setName("???" + i);
csvEntity.setType("??" + i);
csvEntities.add(csvEntity);
}
// ????
List
rows = readCSVFile("list.csv");
for (CsvRow row : rows) {
List
rawList = row.getRawList();
System.out.println(rawList);
}
// ????
writeCSVFile(response, "???.csv", csvEntities);
}
private void writeCSVFile(HttpServletResponse response, String fileName, List
csvEntities) {
CsvWriter writer = null;
try {
writer = CsvUtil.getWriter("C:\\Users\\perfe\\Desktop\\???.csv", CharsetUtil.CHARSET_GBK);
writer.write(writeLine(csvEntities));
response.setContentType("application/csv;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("???.csv", "UTF-8"));
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
if (writer != null) {
writer.close();
}
}
}
private List
writeLine(List
csvEntities) { List
list = new ArrayList<>(); for (CsvEntity csvEntity : csvEntities) { String[] strings = new String[2]; strings[0] = csvEntity.getName(); strings[1] = csvEntity.getType(); list.add(strings); } return list; } private List
readCSVFile(String fileName) { CsvReader reader = CsvUtil.getReader(); CsvData data = reader.read(FileUtil.file(fileName), CharsetUtil.CHARSET_GBK); return data.getRows(); } }

???????

  • ????
  • List
    rows = readCSVFile("list.csv");
    for (CsvRow row : rows) {
    List
    rawList = row.getRawList();
    System.out.println(rawList);
    }
    1. ????
    2. private void writeCSVFile(HttpServletResponse response, String fileName, List
      csvEntities) {
      CsvWriter writer = null;
      try {
      writer = CsvUtil.getWriter("C:\\Users\\perfe\\Desktop\\???.csv", CharsetUtil.CHARSET_GBK);
      writer.write(writeLine(csvEntities));
      response.setContentType("application/csv;charset=UTF-8");
      response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("???.csv", "UTF-8"));
      } catch (Exception e) {
      throw new RuntimeException(e);
      } finally {
      if (writer != null) {
      writer.close();
      }
      }
      }

      ??????

    3. ??CSV?????Hutool??CsvReader?????????????
    4. ???????????????CsvEntity??????
    5. ??CSV?????CsvWriter???????????CSV??????????
    6. ??

      ?????????Spring Boot????????CSV?????Hutool????API???????????????????????????????????????????

    上一篇:java实现JavaBean与xml互转方式以及工具类
    下一篇:第三章、链表的面试题

    发表评论

    最新留言

    感谢大佬
    [***.8.128.20]2025年04月14日 00时05分24秒