首页 > 其他分享 >easyexcel 导出 excel 表格数据

easyexcel 导出 excel 表格数据

时间:2022-10-30 21:34:20浏览次数:60  
标签:表格 int easyexcel excel alibaba import com public

  • 创建一个 Springboot 项目

  • easyexcel 导出 excel 表格数据
  • 创建之后,pom.xml 配置

  • <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.7.5</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>shangchuangExcel</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>shangchuangExcel</name>
        <description>shangchuangExcel</description>
        <properties>
            <java.version>1.8</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.mysql</groupId>
                <artifactId>mysql-connector-j</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>2.2.3</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>RELEASE</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>compile</scope>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>3.0.5</version>
            </dependency>
    
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>2.2.10</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>3.17</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>3.17</version>
            </dependency>
    
    
    
    
        </dependencies>
    
    
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

    创建一个实体类 Student.java

  • @Data
    @ToString
    @AllArgsConstructor
    @NoArgsConstructor  // 一定要有无参构造方法
    public class Student {
        @ExcelProperty(value = "姓名")
        private String name;
    
        @ExcelProperty(value = "性别", converter = SexConverter.class)
        private Integer sex;
    
        @ExcelProperty(value = "生日")
        private Date birthday;
    
        @ExcelProperty(value = "体重KG")
        // 会以字符串形式生成单元格,要计算的列不推荐
        @NumberFormat("0.##")
        private BigDecimal weight;
    
    //    @ContentStyle(dataFormat = 2)
    //    private BigDecimal weight2;
    
        private String memo;
    }

    创建    generateStudentUtil.java

  • public class generateStudentUtil {
        public static List<Student> generateStudent(int size) {
            List<Student> stues = new ArrayList<>();
            for (int i = 0; i < size; i++) {
                stues.add(new Student("姓名" + i, (int) (Math.random() * 2), randomDate(), randomWeight(), "备注"));
            }
            return stues;
        }
    
        public static Date randomDate() {
            LocalDateTime localDateTime = LocalDateTime.of(randomInt(1990, 2022), randomInt(1, 12), randomInt(1, 28), randomInt(0, 23), randomInt(0, 59), randomInt(0, 59), randomInt(0, 999));
            ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
            return Date.from(zdt.toInstant());
        }
    
        public static int randomInt(int min, int max) {
            int de = max - min;
            // 二进制长度
            int bitCount = Integer.toBinaryString(de).length();
            int ans = 0;
            do {
                ans = 0;
                for (int i = 0; i < bitCount; i++) {
                    ans += random0_1() << i;
                }
            } while (ans > de);
            return ans + min;
        }
    
        public static int random0_1() {
            return (int) (Math.random() * 2);
        }
    
        public static BigDecimal randomWeight() {
            return BigDecimal.valueOf((Math.random() * 10));
        }
    }

    创建一个 SexConverter.java 

  • package com.example.shangchuangexcel.entity;
    
    import com.alibaba.excel.converters.Converter;
    import com.alibaba.excel.enums.CellDataTypeEnum;
    import com.alibaba.excel.metadata.CellData;
    import com.alibaba.excel.metadata.GlobalConfiguration;
    import com.alibaba.excel.metadata.property.ExcelContentProperty;
    
    /*
    * 显示男女
    * */
    public class SexConverter implements Converter<Integer> {
    
        @Override
        public Class<Integer>supportJavaTypeKey() {
            return Integer.class;
        }
    
        @Override
        public CellDataTypeEnum supportExcelTypeKey() {
            return CellDataTypeEnum.STRING;
        }
    
        @Override
        public Integer convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
            return "男".equals(cellData.getStringValue()) ? 1 : 0;
        }
    
        @Override
        public CellData<String> convertToExcelData(Integer integer, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
            return new CellData<>(integer.equals(1)? "男" : "女");
        }
    }

    创建测试类 测试一下是否成功

  • BaseTest.java
  • package com.example.shangchuangexcel.test;
    
    import com.alibaba.excel.EasyExcel;
    import com.alibaba.excel.ExcelWriter;
    import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
    
    import java.util.function.Consumer;
    
    public class BaseTest {
        /**
         * 导出方法
         *
         * @param fileName       文件
         * @param writerConsumer consumer
         */
        public static void export(String fileName, Consumer<ExcelWriter> writerConsumer) {
            ExcelWriter writer = EasyExcel.write(fileName)
                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();
            writerConsumer.accept(writer);
            writer.finish();
        }
    }

     

    TestEasyExcel.java
  • package com.example.shangchuangexcel.test;
    
    import com.alibaba.excel.EasyExcel;
    import com.alibaba.excel.ExcelWriter;
    import com.example.shangchuangexcel.entity.Student;
    import org.junit.Test;
    
    import java.util.function.Consumer;
    
    import static com.example.shangchuangexcel.entity.generateStudentUtil.generateStudent;
    
    public class TestEasyExcel extends BaseTest{
        @Test
        public void export1() {
            Consumer<ExcelWriter> consumer = writer -> {
                writer.write(generateStudent(10), EasyExcel.writerSheet("学生信息")
                        .head(Student.class)
                        .build());
            };
            export("E:/报表.xlsx", consumer);
        }
    }
    export("E:/报表.xlsx", consumer);  // 这是表的路径,如果执行后,第二次要删掉路径导出的表在继续执行

执行成功

 

标签:表格,int,easyexcel,excel,alibaba,import,com,public
From: https://www.cnblogs.com/zengxiangcai/p/16842290.html

相关文章

  • Excel 文件的读取
    1.打开Excel文档Excel文档创建完成后,为了读取Excel文档。首先需要打开Excel文档。代码如下:importopenpyxlwb=openpyxl.load_workbook("example.xlsx")type(wb)在......
  • Excel 的基本概念以及 Excel 文件的创建
    1.安装第三方库为了能够使用Python对Excel文件进行操作,我们需要安装第三方库openpyxl。1.1检查有没有安装第三方库首先,检查有没有安装openpyxl库。在Python的终端......
  • springboot~写一个从excel读取json到List<Map>的方法
    excel读出来的json,它是一个字符串,不是标准json,所以需要对字符串字段进行解析复杂的excel如图通过poi解析json,通过jackson完成对字段的解析publicstaticList<Map<String,O......
  • wpf利用ReoGrid控件进行Excel表格展示及导出
    Nuget包安装Nuget包管理器直接搜索ReoGrid进行安装,如图   前端根据官方文档(https://reogrid.net/document/installation/)在前端引入命名空间:xmlns:rg="clr-na......
  • go excelize 批量写入数据到Excel
    funcCreateXlS(data[][]string,fileNamestring,headerNameArray[]string){f:=excelize.NewFile()sheetName:="sheet1"sheetWords:=[]strin......
  • Excel 公式、图表以及单元格的操作
    1.公式1.1SUMSUM函数将值相加,可以将单个值、单元格引用或是区域相加,或者将三者的组合相加。例如:=SUM(A1:A3)将单元格A1:A3中的值加在一起,=SUM(A1:A3,B1:B3)将单元格A......
  • Java 读取 Excel 模板,将数据填入Excel表格,后转换为PDF文件(实用)
    前言我在互联网上冲浪的时候,看到有的小伙伴说可以使用​​Excel​​模板,来实现这个功能。这个方式我是喜欢的~(ps:因为不要用代码去画表格,是真的舒服~)大致流程如下:编写一个E......
  • Excel如何将一张工作表拆分成多个工作表Sheet?Excel拆分工作表方法
    生活中我们偶尔会碰到这种情况,当你之前将所有数据已经都整理在一个Excel表格里了,但临时因为需要,却需要将里面的数据分开放在不同的工作表里,该怎么操作呢?利用透视表,我们就能......
  • DOM的Node对象和案例4动态表格添加
    DOM的Node对象Node:节点对象,其他5个的父对象特点:所有dom对象都可以被认为是一个节点方法:CRUDdom树:appendChild():向节点的子节点列表的......
  • 04markdown图片表格
    markdown图片格式:开头一个感叹号!接着一个方括号,里面放上图片的替代文字接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上选择性的'title'属性的......