java csv 组件,csv导入导出组件jcsv

jcsv是一个轻量级的CSV处理库,专注于数据的导入导出和验证,支持SpringBoot集成。配置中包含了导入导出的详细设置,如压缩类型、文件大小限制、模板路径以及复杂的验证规则。在导入时,提供了异常处理,确保数据的准确性;导出时,可以自定义文件名并直接输出到HTTP响应流中。
摘要由CSDN通过智能技术生成

jcsv

介绍

jcsv一个简单的、轻量级的csv导入、导出库,相对于opencsv与javacsv,jcsv侧重于导入导出,包括导入校验、导出模板等。 源代码地址:https://gitee.com/lpxs/jcsv.git

使用说明

jcsv现在只支持集成到springboot工程中

依赖库

com.github.lipengxs.jcsv

jcsv-spring-boot-starter

1.0.0

配置说明

csv-config:

exportc:

- id: aa

compress:

enabled: true

file-size: 10000

type: zip

template: /template/aa.csv

importc:

- id: throng-0

desc : "上传member_id"

max-size: 30 #单位m

start-row: 2

separator: ","

valicate:

- { col: 0, name: member_id,validateRegex: "^\\d{1,10}$", hint: "请填写10位以内的数字",required: true}

- id: throng-1

desc : "上传email+语言+站点"

max-size: 30 #单位m

separator: ","

start-row: 2

valicate:

- { col: 0, name: email,required: true,validateRegex: "^[éûàçùôîèíá¡N¿UóñúäöüßàèùåäöãáéàêçíşçöüğşàâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇA-Za-z0-9_\\-\\.\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$", hint: "邮箱地址错误"}

- { col: 1, name: language ,required: true,hint: "语言错误" ,td-id: 11}

- { col: 2, name: site_id,required: true,hint: "站点错误" ,td-id: 13 }

- id: throng-3

desc: "上传member_id+占位符"

max-size: 30 #单位m

separator: ","

start-row: 2

check-column-size: false //该字段是表示不限制字段个数,没有在valicate中配置不需要校验

valicate:

- { col: 0, name: member_id,validateRegex: "^\\d{1,10}$", hint: "请填写10位以内的数字",required: true}

- id: throng-4

desc: "上传email"

max-size: 30 #单位m

start-row: 2

separator: ","

valicate:

- { col: 0, name: email,required: true,validateRegex: "^[éûàçùôîèíá¡N¿UóñúäöüßàèùåäöãáéàêçíşçöüğşàâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇA-Za-z0-9_\\-\\.\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$", hint: "邮箱地址错误"}

导入

@Autowize

private CsvContext csvContext;

public BaseDataAPI upload(HttpServletRequest request,

@RequestParam("file") MultipartFile file){

try {

if(file==null){

return D.error("请上传文件");

}

//解析模板内容,对比模板内容是否和上传的一样外层需要抓取异常因为错误信息是以异常来进行鉴别

List> list= csvContext.transfer(file,"throng-"+uploadType,product);

return D.ok(hash);

} catch (CsvImportException e) {

return D.error(e.getMessage());

} catch (Exception e) {

return D.error(e.getMessage());

}

}

导出

@Autowize

private CsvContext csvContext;

public BaseDataAPI export(){

、try {

fileName = new String(fileName.getBytes(), "ISO8859-1");

} catch (UnsupportedEncodingException var3) {

var3.printStackTrace();

}

response.setContentType(MediaType.APPLICATION_OCTET_STREAM.toString());

response.setHeader("Content-Disposition", "attachment;filename=" + fileName);

response.addHeader("Pargam", "no-cache");

response.addHeader("Cache-Control", "no-cache");

FileCopyUtils.copy(csvContext.export(id,data), response.getOutputStream());

} catch (Exception var4) {

var4.printStackTrace();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值