jcsv

介绍

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

使用说明

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

依赖库

<dependency>
<groupId>com.github.lipengxs.jcsv</groupId>
<artifactId>jcsv-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>

配置说明

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<Map<String,Object>> 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();
}
}

csv导入导出组件jcsv的更多相关文章

  1. [转]Office导入导出组件权限配置汇总

    原文地址:Office导入导出组件权限配置汇总 具体配置方法如下:  1:在服务器上安装office的Excel软件.  2:在"开始"->"运行"中输入 ...

  2. ASP.NET 开源导入导出库Magicodes.IE 完成Csv导入导出

    Magicodes.IE Csv导入导出 说明 本章主要说明如何使用Magicodes.IE.Csv进行Csv导入导出. 主要步骤 1.安装包Magicodes.IE.Csv Install-Pack ...

  3. vue中excel导入导出组件

    vue中导入导出excel,并根据后台返回类型进行判断,导入到数据库中 功能:实现js导入导出excel,并且对导入的excel进行展示,当excel标题名称和数据库的名称标题匹配时,则对应列导入的数 ...

  4. NPOI读写Excel组件封装Excel导入导出组件

    后台管理系统多数情况会与Excel打交道,常见的就是Excel的导入导出,对于Excel的操作往往是繁琐且容易出错的,对于后台系统的导入导出交互过程往往是固定的,对于这部分操作,我们可以抽离出公共组件 ...

  5. Office导入导出组件权限配置汇总

    NET导出Excel遇到的80070005错误的解决方法: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现 ...

  6. .NET中的CSV导入导出(实例)

    导入代码,从csv文件得到datatable         /// <summary>        /// Get Data From Csv File         /// (Th ...

  7. 分享:一个基于NPOI的excel导入导出组件(强类型)

    一.引子 新进公司被安排处理系统的数据报表任务——对学生的考试成绩进行统计并能导出到excel.虽然以前也有弄过,但感觉不是很好,所以这次狠下心,多花点时间作个让自己满意的插件. 二.适用领域 因为需 ...

  8. ASP .Net C# ---CSV导入导出

    CSV和Excel大致相同  复制下来 数据传到方法里面就可以了 /// <summary> /// DataTable数据写入CSV文件 /// </summary> /// ...

  9. Excel导入导出组件的设计

    前言: 距离一篇文章,又八九个月过去了,随着在园子露脸的次数越来越少,正如我们淡忘上一波大神那样,我们也正下一波所淡忘. 这八九个月,前前后,游走在十来个项目上,忙,却找不到成就感. 人过30后,也是 ...

  10. Java CSV操作(导出和导入)

    Java CSV操作(导出和导入)  CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件 ...

随机推荐

  1. 硬件开发笔记(二十一):外部搜索不到的元器件封装可尝试使用AD21软件的“ManufacturerPart Search”功能

    前言   这是一个AD的一个强大的新功能,能招到元器件的原理图.3D模型还有价格厂家,但是不一定都有,有了也不一定有其3D模型. ManufacturerPart Search 在设计工具中选择即用型 ...

  2. VMware 17 Exception 0xc0000094 解决

    VMWare16的虚拟机升级到17时, 可能会出现虚拟机可以正常使用, 但编辑设置就会出现vmui错误的现像. VMware Workstation unrecoverable error: (vmu ...

  3. ASP.NET Core使用Hangfire定时发布文章

    ASP.NET Core使用Hangfire实现定时任务 前言 也是上了5天班,终于迎来了休息,抽空更新下博客,然后就是下周一公司会对我进行考核,希望考核能通过吧!!! 然后我想给博客添加一个定时发布 ...

  4. 在高通Fastmmi模式中增强交互方式

    在高通Fastmmi模式中增强交互方式 背景 由于之前工厂抱怨 FCT模式不好用. 之前的FCT测试是这样子的:PCBA上夹具,连接USB. 同时,使用上位机程序(ATE)发送指令,人工判断结果以后, ...

  5. Freertos学习:05-内核控制

    --- title: rtos-freertos-05-kernel-control date: 2020-06-22 11:10:19 categories: tags: - kernel - fr ...

  6. vba--数组

    Sub shishi() Range("e2") = Split(Range("e1"), "-")(0) '用短横线分隔后取第1个值 En ...

  7. .NET 6 Entity Framework Core Db First(2) 增删改查

    基础代码 在Program.cs注入DemoContext 新建HomeController,继承ControllerBase 添加Controller特性,[ApiController] [Rout ...

  8. ubuntu16.04 python2&3 pip升级后报错:sys.stderr.write(f"ERROR: {exc}")

    ubuntu16.04 python2&3 pip升级后报错: sys.stderr.write(f"ERROR: {exc}") 描述 最近使用ubuntu16.04上的 ...

  9. Java FastJson解析json字符串

    json转map Map<String, 实体类> titleMap=JSON.parseObject(JSON字符串, new TypeReference<HashMap<S ...

  10. java dom4j解析xml

    jar包下载 官网地址:点我直达 将jar包导入工程 package com.cyb; import java.io.InputStream; import java.security.Message ...