热门标签 | 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给我 地址




推荐阅读
  • 蜘蛛表格:全面解析与应用指南
    蜘蛛表格:全面解析与应用指南 ... [详细]
  • 本文介绍了如何利用Apache POI库高效读取Excel文件中的数据。通过实际测试,除了分数被转换为小数存储外,其他数据均能正确读取。若在使用过程中发现任何问题,请及时留言反馈,以便我们进行更新和改进。 ... [详细]
  • 如何在 Node.js 环境中将 CSV 数据转换为标准的 JSON 文件格式? ... [详细]
  • 在循环读取文本文件时,经常会遇到一些常见的错误,如日期格式不正确、文件路径错误等。本文详细分析了这些问题,并提供了具体的解决方法,包括如何正确处理日期字符串和确保文件路径的准确性。通过这些方法,可以有效提高数据读取的稳定性和可靠性。 ... [详细]
  • 可转债数据智能抓取与分析平台优化
    本项目旨在优化可转债数据的智能抓取与分析平台。通过爬取集思录上的可转债信息(排除已发布赎回的债券),并结合安道全教授提出的三条安全线投资策略,新增了建仓线、加仓线和重仓线,以提供更精准的投资建议。 ... [详细]
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
  • 在该项目中,参与者需结合历史使用模式和天气数据,以预测华盛顿特区自行车共享系统的租赁需求。数据分析部分首先涉及数据的收集,包括用户骑行记录和气象信息,为后续模型构建提供基础。通过深入的数据预处理和特征工程,确保数据质量和模型准确性,最终实现对自行车租赁需求的有效预测。 ... [详细]
  • Python 数据分析领域不仅拥有高质量的开发环境,还提供了众多功能强大的第三方库。本文将介绍六个关键步骤,帮助读者掌握 Python 数据分析的核心技能,并深入探讨六款虽不广为人知但却极具潜力的数据处理库,如 Pandas 的替代品和新兴的可视化工具,助力数据科学家和分析师提升工作效率。 ... [详细]
  • 在第七天的深度学习课程中,我们将重点探讨DGL框架的高级应用,特别是在官方文档指导下进行数据集的下载与预处理。通过详细的步骤说明和实用技巧,帮助读者高效地构建和优化图神经网络的数据管道。此外,我们还将介绍如何利用DGL提供的模块化工具,实现数据的快速加载和预处理,以提升模型训练的效率和准确性。 ... [详细]
  • 在一系列的学习与实践后,Jsoup学习笔记系列即将进入尾声。本文详细介绍了如何使用Jsoup实现从Saz文件到Csv格式的数据解析功能。未来,计划将此功能进一步封装,开发成具有用户界面的独立应用程序,以增强其实用性和便捷性。对于希望深入掌握Jsoup技术的开发者,本文提供了宝贵的参考和实践案例。 ... [详细]
  • 在处理数据框时,常见的需求是从Excel文件中读取数据,并清除所有字段中的特定字符,如分号。由于列中可能包含多种数据类型,直接操作可能会引发AttributeError。为避免此类错误,建议使用Pandas库中的`applymap`方法,结合自定义函数来实现字符的高效移除。 ... [详细]
  • 运用Isotonic回归算法解决鸢尾花数据集中的回归挑战
    本文探讨了利用Isotonic回归算法解决鸢尾花数据集中的回归问题。首先介绍了Isotonic回归的基本原理及其在保持单调性方面的优势,并通过具体示例说明其应用方法。随后详细描述了鸢尾花数据集的特征和获取途径,最后展示了如何将Isotonic回归应用于该数据集,以实现更准确的预测结果。 ... [详细]
  • 内网渗透技术详解:PTH、PTT与PTK在域控环境中的应用及猫盘内网穿透配置
    本文深入探讨了内网渗透技术,特别是PTH、PTT与PTK在域控环境中的应用,并详细介绍了猫盘内网穿透的配置方法。通过这些技术,安全研究人员可以更有效地进行内网渗透测试,解决常见的渗透测试难题。此外,文章还提供了实用的配置示例和操作步骤,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 1.sqlite3xxx.db2..modecsv3..importcsv文件表名例:.importcity.csvcity4..quit退出注1:不要忘了开首的点注2:这条语句不 ... [详细]
  • 我有一个问题,把CSV文件导入数据库。。。Im在Python中使用SQLAlchemy,希望打开一个CSV文件,而不是在QTableWid ... [详细]
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社区 版权所有