大家在做 web 开发时常碰到的一个需求就是:将网页上某个列表页的数据导出。有的要求导出成 excel 格式的文件,有的要求导出成 csv 格式的文件。今天就来给大家介绍怎么利用 java 导出 csv 格式的文件。
什么是 CSV 格式的文件
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符不一定是逗号),其文件以纯文本形式存储表格数据。纯文本意味着该文件是一个字符序列,即二进制编码的数据都可以被解读成人类可读的形式。CSV 文件由任意数目的记录组成,记录之间以 某种换行符 分隔;每条记录由字段组成,字段之间的分隔符是特定的字符或字符串,最常见的是逗号或制表符。通常,所有记录都拥有完全相同的字段。
下面就是一个符合 csv 格式的示例文件
1 | nama,age,gender |
导出需要注意的点
- 可以通过重写数据模型的 toString 方法来提高生成 csv 文件的速度
- 返回文件的具体编码格式根据需求来定,这里用的是 UTF-8 编码
- 根据业务要求和服务器性能设定一个单次导出上限值
具体实现
这里是后端直接提供 HTTP 导出接口。
定义一个数据模型
根据要导出的字段来定义
1 | package com.nongfenqi.transport.export; |
写一个工具类
工具类中包含了两个方法:一个是将数据模型转换成临时的 csv 文件;另一个是将临时 csv 文件写入到 HttpServletResponse 中返回给浏览器。
1 | package com.nongfenqi.transport.common; |
写一个 HTTP 接口
利用 Spring 框架,写一个 RestController 接口给前端或者浏览器端调用。
1 | package com.nongfenqi.transport.controller; |