excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Java读取Excel_超详细样例

整体介绍

本文采用easyexcel来做java读取excel的样例,他更快,更低内存消耗,是java读写excel的最好工具。

EasyExcel是一款基于Java开发的高效、简洁的Excel处理工具,专为解决大文件内存溢出问题而设计。它能够快速完成Excel的读写操作,同时显著降低内存消耗。与传统的Apache POI等框架相比,EasyExcel通过采用SAX模式解析并重写了对07版Excel的处理方式,使得即使面对非常大的Excel文件也能保持较低的内存占用(例如,3M大小的文件只需几M内存)。此外,它支持多种高级功能如自定义样式、数据转换器以及公式自动计算等,极大地简化了开发者的工作流程。

使用easyexcel 读取 excel的案例

使用easyexcel 生成一个Excel文件的过程

根据提供的我了解的信息,我们可以了解到EasyExcel是一个基于Java的、快速且简洁的工具,专门用于处理Excel文件,特别是解决大文件内存溢出的问题。在下面的部分中,我们将详细描述如何通过EasyEasyExcel来创建一个新的Excel文件,包括必要的配置信息以及具体的代码示例。

准备工作

首先确保你的项目已经引入了EasyExcel的相关依赖。如果你使用Maven作为构建工具,可以在pom.xml文件中添加如下依赖:

<dependency>    <groupId>com.alibaba</groupId>    <artifactId>easyexcel</artifactId>    <version>2.2.10</version> <!-- 请确认你使用的版本 --></dependency>

接下来定义一个简单的数据模型类,用来表示Excel中的每一行数据。这里以学生信息为例:

import com.alibaba.excel.annotation.ExcelProperty;import lombok.Data;@Datapublic class Student {    @ExcelProperty("学号")    private String id;    @ExcelProperty("姓名")    private String name;    @ExcelProperty("年龄")    private Integer age;}

创建并填充Excel文件

现在我们准备好了一个基本的数据模型类,下一步就是编写代码来创建和填写Excel文件。以下是完成这个任务的一个例子:

import com.alibaba.excel.EasyExcel;import java.util.ArrayList;import java.util.List;public class ExcelGenerator {    public static void main(String[] args) {        // 目标文件路径        String fileName = "students.xlsx";                // 准备数据        List<Student> students = new ArrayList<>();        for (int i = 1; i <= 100; i++) {            Student student = new Student();            student.setId("S" + i);            student.setName("Student" + i);            student.setAge(18 + i % 5); // 假设学生的年龄为18至22岁之间            students.add(student);        }        // 写入Excel        EasyExcel.write(fileName, Student.class).sheet("学生列表").doWrite(students);        System.out.println("Excel文件已成功生成!");    }}

这段代码首先指定了要写入的文件名(students.xlsx),然后准备了一组学生数据,并将这些数据写入到指定名称的工作表中。

配置选项

虽然上述示例已经足够演示基本功能,但EasyExcel还提供了丰富的配置选项以满足更复杂的需求。例如,你可以设置是否自动修剪字符串、选择性地包含或排除某些列等。以下是一些常用的配置选项及其用途:

  • autoTrim: 自动去除读取/写入过程中头和单元格值前后空白字符。

  • excludeColumnFieldNames: 指定需要从输出中排除的字段名。

  • includeColumnFieldNames: 只导出特定字段。

  • needHead: 控制是否在输出文件中加入表头。

这些参数可以通过调用相应的方法链式设置。例如,如果希望只导出“学号”和“姓名”,同时开启自动修整功能,可以这样修改上面的例子:

EasyExcel.write(fileName, Student.class)         .registerConverter(new CustomConverter())  // 如果有自定义转换器         .autoTrim(true)         .includeColumnFieldNames(Arrays.asList("id", "name"))         .sheet("学生列表")         .doWrite(students);

结论

以上便是利用EasyExcel生成Excel文件的一个完整过程。该框架不仅简化了开发者的编码工作量,同时也极大地优化了性能与资源占用情况。对于更大规模的数据处理需求,还可以进一步探索如并发控制、缓存策略等高级特性。

使用easyexcel 生成excel的案例

使用easyexcel 生成Excel的案例

分析

根据提供的知识,使用EasyExcel来生成一个Excel文件主要涉及以下几个步骤:

  1. 定义数据模型:创建一个Java类,该类中的字段对应于Excel表格中的列。通过@ExcelProperty注解指定每个字段在Excel中的标题。

  1. 准备数据:创建一个列表,填充要写入的数据。

  1. 写入数据:利用EasyExcel的API将准备好的数据写入到Excel文件中。

以下将详细展示如何执行这些步骤以生成一个简单的Excel文件。

具体步骤

  1. 定义数据模型
    首先,我们需要创建一个代表Excel行内容的Java类。这里我们将它命名为DemoData。此示例中,我们的Excel将包含三列:字符串、日期和数字。

@Getter@Setter@EqualsAndHashCodepublic class DemoData {    @ExcelProperty("字符串标题")    private String string;    @ExcelProperty("日期标题")    private Date date;    @ExcelProperty("数字标题")    private Double doubleData;    /**     * 忽略这个字段     */    @ExcelIgnore    private String ignore;}
  1. 准备数据
    接下来,需要准备实际要写入Excel的数据。这通常意味着创建一个List<DemoData>实例并填充一些样本数据。

private List<DemoData> data() {    List<DemoData> list = new ArrayList<>();    for (int i = 0; i < 10; i++) {        DemoData data = new DemoData();        data.setString("字符串" + i);        data.setDate(new Date());        data.setDoubleData(0.56 * (i + 1));        list.add(data);    }    return list;}
  1. 写入数据到Excel
    最后一步是调用EasyExcel的write方法来创建Excel文件,并使用之前准备的数据填充它。

@Testpublic void simpleWrite() {    // 文件名    String fileName = "simpleWrite" + System.currentTimeMillis() + ".xlsx";    // EasyExcel.write(fileName, 数据类型).sheet("工作表名称").doWrite(数据源);    EasyExcel.write(fileName, DemoData.class)             .sheet("模板")             .doWrite(() -> data());}

这里有几种方式可以调用doWrite方法,上面的例子采用的是lambda表达式的形式来提供数据。另外还支持直接传入数据列表或者更复杂的自定义写操作配置。

解释

  • 在第一步中,我们定义了DemoData类,它包含了三个属性,分别映射到Excel的三个列。通过@ExcelProperty注解指定了每一列的标题,而@ExcelIgnore则用于排除不需要导出到Excel的字段。

  • 第二步展示了如何生成一份测试数据集。在这个例子中,我们简单地循环创建了10个DemoData对象,每次迭代时改变字符串值并保持日期为当前时间。

  • 最后,在第三步中,我们使用EasyExcel库的功能创建了一个新的Excel文件,并将前面构造的数据集写入到该文件内。这里的fileName变量存储了目标文件的路径和名称,DemoData.class指定了数据模型,.sheet("模板")设定了工作表的名字,最后doWrite方法接收一个数据源(这里是通过lambda函数动态生成)完成整个写入过程。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接