热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

mambaexcel(一个excel/csv操作工具)

1前言为了简化Excel和Csv的操作复杂性,我自己写了一个工具类可以轻松读和写excel或者csv文件。本文主要介绍如何使用2项目源码地址3具体使用教程核心类:操作本工具主要使用

1前言

为了简化Excel和Csv的操作复杂性,我自己写了一个工具类可以轻松读和写excel或者csv文件。本文主要介绍如何使用


2 项目源码

地址


3 具体使用教程



  • 核心类:操作本工具主要使用MambaExcelFactory,负责整合操作对象的构建


3.1 读取Excel

可以用来读取指定的List对象,比如有张表记录User的信息,那么可以指定User类型并且通过List接收。例子如图所示

@Test
public void testExcelReader() {
//指定excel标题头,并且指定每个字段的类型
List headerDataList = HeaderDataBuilder.instance()
.fill("name", STRING)
.fill("age", INTEGER)
.fill("address", STRING)
.fill("salary", DOUBLE)
.fill("married", BOOLEAN)
.build();
MambaExcelFactory.build().readInstance("E:/user.xlsx", User.class, headerDataList)
.read(new DataReadListener<>((users -> {
//可以对查询到的结果进行特定逻辑的处理
System.out.println(JSON.toJSONString(users));
})));
}

上面代码的意思是首先构建excel标题头的信息,指定User中每个字段的类型(注意User类需要预先定义好)。然后构建MambaExcelFactory对象,通过readInstance方法指定excel的路径,刚刚说的你要接收的类型User以及构建好的标题头信息。最后通过DataReadListener监听器来对读取到的List集合做想要的操作。当然,如果你想要读取指定的sheet,可以在readInstance方法中指定特定的sheetName。


3.2 写Excel

写excel的话例子如下: 同样需要先构建excel标题头信息,然后需要通过ContentDataBuilder构建excel的内容信息,具体的内容可以指定具体对象比如User,最后通过writeInstance方法指定生成路径,标题头,内容等信息。

@Test
public void testExcelWriter() {
List headerDataList = HeaderDataBuilder.instance()
.fill("name", STRING)
.fill("age", INTEGER)
.fill("address", STRING)
.fill("salary", DOUBLE)
.fill("married", BOOLEAN)
.build();
List cOntentList= ContentDataBuilder.instance(headerDataList)
.fill(new User("jack", 29, "shanghai", 1111.1, true)).build();
MambaExcelFactory.build().writeInstance("./user2.xlsx", headerDataList, contentList).write();
}

当然,一般我们都是批量写数据,所以本工具肯定也支持指定比如List来批量写User数据

@Test
public void testExcelWriter2() {
List headerDataList = HeaderDataBuilder.instance()
.fill("name", STRING)
.fill("age", INTEGER)
.fill("address", STRING)
.fill("salary", DOUBLE)
.fill("married", BOOLEAN)
.build();
List users = new ArrayList<>();
User user1 = new User("jack", 29, "shanghai", 12111d, true);
User user2 = new User("rose", 24, "beijing", 12000d, true);
User user3 = new User("jack", 29, "shanghai", 11111.1, true);
users.add(user1);
users.add(user2);
users.add(user3);
List cOntentList= ContentDataBuilder.instance(headerDataList)
.fill(users).build();
MambaExcelFactory.build().writeInstance("./user3.xlsx", headerDataList, contentList).write();
}

只需要将fill方法中的参数变为List即可

还有一种情况是并不指定写的内容是什么类型,比如只想导出所有的用户名,那么可以通过如下方式进行:

@Test
public void testExcelWriter3() {
List headerDataList = HeaderDataBuilder.instance()
.fill("name", STRING)
.build();
List users = new ArrayList<>();
Object name1 = "joe";
Object name2 = "rose";
Object name3 = "jack";
users.add(name1);
users.add(name2);
users.add(name3);
List cOntentList= ContentDataBuilder.instance(headerDataList)
.fill(users,false).build();
MambaExcelFactory.build().writeInstance("./user4.xlsx", headerDataList, contentList).write();
}

3.2 读写CSV

读写csv文件操作和excel一模一样,因此不再赘述,只需将读取生成文件改成csv格式即可


注意:如果在使用过程中需要任何bug或者问题,可以在github提issue给我 地址




推荐阅读
  • ABBYY FineReader:高效PDF转换、精准OCR识别与文档对比工具
    在处理PDF转换和OCR识别时,您是否遇到过格式混乱、识别率低或图表无法正常识别的问题?ABBYY FineReader以其强大的功能和高精度的识别技术,完美解决这些问题,帮助您轻松找到最终版文档。 ... [详细]
  • 本文详细介绍了Python中文件的基本操作,包括打开、读取、写入和关闭文件的方法,并通过实例展示了如何将Excel文件转换为CSV文件以及进一步转换为HTML文件。此外,还涉及了成绩等级替换的具体实现。 ... [详细]
  • 在API测试中,我们常常需要通过大量不同的数据集(包括正常和异常情况)来验证同一个接口。如果为每种场景单独编写测试用例,不仅繁琐而且效率低下。采用数据驱动的方式可以有效简化这一过程。本文将详细介绍如何利用CSV文件进行数据驱动的API测试。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 本文介绍如何使用 Python 获取文件和图片的创建、修改及拍摄日期。通过多种方法,如 PIL 库的 _getexif() 函数和 os 模块的 getmtime() 和 stat() 方法,详细讲解了这些技术的应用场景和注意事项。 ... [详细]
  • 使用Pandas高效读取SQL脚本中的数据
    本文详细介绍了如何利用Pandas直接读取和解析SQL脚本,提供了一种高效的数据处理方法。该方法适用于各种数据库导出的SQL脚本,并且能够显著提升数据导入的速度和效率。 ... [详细]
  • 本文介绍如何使用 Python 的 xlrd 库读取 Excel 文件,并将其数据处理后存储到数据库中。通过实际案例,详细讲解了文件路径、合并单元格处理等常见问题。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • ˂p优秀的马里奥YouprobablywanttomakethecreationoftheformuladynamicsoeachrowofCta ... [详细]
  • 利用R语言进行股票价格数据的线性回归分析
    本文介绍了如何使用R语言对Excel中的股票价格数据集执行线性回归分析。通过具体的代码示例,展示了数据的导入、处理及模型构建的过程。 ... [详细]
  • 主板市盈率、市净率及股息率的自动化抓取
    本文介绍了如何通过Python脚本自动从中国指数有限公司网站抓取主板的市盈率、市净率和股息率等关键财务指标,并将这些数据存储到CSV文件中。涉及的技术包括网页解析、正则表达式以及异常处理。 ... [详细]
  • addcslashes—以C语言风格使用反斜线转义字符串中的字符addslashes—使用反斜线引用字符串bin2hex—函数把包含数据的二进制字符串转换为十六进制值chop—rt ... [详细]
author-avatar
mobiledu2502913517
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有