
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;@Datapublic 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;@RestControllerpublic class CsvController { @GetMapping("/getCsv") public void getCsv(HttpServletResponse response, HttpServletRequest request) { ListcsvEntities = 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(); } }
???????
Listrows = readCSVFile("list.csv");for (CsvRow row : rows) { List rawList = row.getRawList(); System.out.println(rawList);}
- ????
- ??CSV?????Hutool??
CsvReader
????????????? - ???????????????
CsvEntity
?????? - ??CSV?????
CsvWriter
???????????CSV??????????
private void writeCSVFile(HttpServletResponse response, String fileName, ListcsvEntities) { 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(); } }}
??????
??
?????????Spring Boot????????CSV?????Hutool????API???????????????????????????????????????????
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月14日 00时05分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Dockerfile 指令详解
2023-01-24
Docker安装MongoDB(附Docker虚拟机环境与MongoDB客户端连接工具)
2023-01-24
DRBD分布式存储解决方案实战
2023-01-24
DRBL+Clonezilla全自动批量安装操作系统
2023-01-24
DSMM数据安全概述
2023-01-24
Dva员工增删改查Demo实现-优化
2023-01-24
EasyUi的使用与代码编写(一)
2023-01-24
eclipse配置tomcat8.5报错The Apache Tomcat installation at this directory is version 8.5.4. A Tomcat
2023-01-24
eclipse配置xml的自动提示
2023-01-24
ecmall开发记录(一)
2023-01-24
ECSHOP实现收货国家省市由选择下拉菜单改为手动
2023-01-24
ECShop模板原理
2023-01-24
edgeboxes proposal 和dpm 连接
2023-01-24
EdgeX Foundry:开启边缘计算新时代
2023-01-24
EdgeX Foundry:边缘计算的创新平台
2023-01-24
EdgeX Foundry:边缘计算的未来趋势与应用
2023-01-24
Educational Codeforces Round 28
2023-01-24