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




推荐阅读
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • pythonMatplotlib(二)
    Matplotlib+pandas作图一、对csv文件进行提取ruixi.csv对上述表格进行提取并做图画出图像二、对.xlsx进行提取:rui ... [详细]
  • 一、概述nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 作者表示自己最近工作非常忙碌,无法抽出时间写作。他计划在未来的几天内写关于namespace与C#的名字解析以及数据库内容转化为excel文件下载的知识。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • 浙江大学2005–2006学年秋冬季学期《大学计算机基础》课程期末考试试卷开课学院:计算中心,考试形式:闭卷,允许带入场考试 ... [详细]
  • Annotation的大材小用
    为什么80%的码农都做不了架构师?最近在开发一些通用的excel数据导入的功能,由于涉及到导入的模块很多,所以开发了一个比较通用的e ... [详细]
  • 动量|收益率_基于MT策略的实战分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于MT策略的实战分析相关的知识,希望对你有一定的参考价值。基于MT策略的实战分析 ... [详细]
  • 人脸检测 pyqt+opencv+dlib
    一、实验目标绘制PyQT界面,调用摄像头显示人脸信息。在界面中,用户通过点击不同的按键可以实现多种功能:打开和关闭摄像头, ... [详细]
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
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社区 版权所有