首页 > 数据库 >Excel数据库模板导出

Excel数据库模板导出

时间:2024-03-31 20:00:12浏览次数:17  
标签:index TableField 数据库 ExcelProperty Excel value standard private 模板

有时候我们不仅需要将excel文件中的数据导入到数据库,同时我们还需要将数据库中的数据或者表字段导出,接下来我们就具体看看如何进行数据库模板导出~

我记得需要导入easypoi的相关注解(如果没记错的话):

  <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>3.2.0</version>
        </dependency>

以下是我的实体类:

@Data
@TableName("data_standard_excel_dto")
@ApiOperation("导出数据标准excel")
@Component
public class exportExcelDto implements Serializable {
    @ExcelProperty(value = "数据标准编号",index = 1)
//    @TableField("data_standard_code")
    private String dataStandardCode;

    @ExcelProperty(value ="中文名",index = 2)
//    @TableField("cn_value")
    private String cnvalue;

    @ExcelProperty(value ="英文名",index = 3)
//    @TableField("en_value")
    private String envalue;

    @ExcelProperty(value ="标准说明",index = 4)
//    @TableField("data_standard_explain")
    private String dataStandardExplain;

    @ExcelProperty(value ="来源机构",index = 5)
//    @TableField("source_orgnization")
    private String sourceOrgnization;

    @ExcelProperty(value ="数据类型",index = 6)
//    @TableField("data_standard_type")
    private String dataStandardType;

    @ExcelProperty(value ="数据长度",index = 7)
//    @TableField("data_standard_length")
    private Double dataStandardLength;

    @ExcelProperty(value ="数据精度",index = 8)
//    @TableField("data_standard_accuracy")
    private Double dataStandardAccuracy;

    @ExcelProperty(value ="默认值",index = 9)
//    @TableField("data_standard_default")
    private String dataStandardDefault;

    @ExcelProperty(value ="取值范围的最大值",index = 10)
//    @TableField("data_standard_value_max")
    private String dataStandardvalueMax;

    @ExcelProperty(value ="取值范围的最小值",index = 11)
//    @TableField("data_standard_value_min")
    private String dataStandardvalueMin;

    @ExcelProperty(value ="引用码表编号",index = 12)
//    @TableField("data_standard_enumeration_range")
    private String dataStandardEnumerationRange;

    @ExcelProperty(value ="标准状态(0:未发布  1:已发布 2:已停用)",index=13)
//    @TableField("data_standard_status")
    private Integer dataStandardStatus;

    @ExcelProperty(value ="是否为空(0:可为空 1:不为空)",index = 14)
//    @TableField("data_standard_is_blank")
    private Integer dataStandardIsBlank;
}

工具类:

   // 定义一个名为generateExcelHeader的方法,该方法接受一个类参数clazz
   public static List<String> generateExcelHeader(Class<?> clazz){
       // 创建一个名为headerList的List,用于存储Excel表头
       List<String> headerList = new ArrayList<>();
       // 获取类中所有声明的字段(不包括父类中的字段)
       Field[] fields = clazz.getDeclaredFields();
       // 遍历所有字段
       for (Field field : fields) {
           // 获取字段上名为ExcelProperty的注解
           ExcelProperty excelProperty = field.getAnnotation(ExcelProperty.class);
           // 如果注解不为空,将注解的值添加到headerList中
           if (excelProperty != null) {
               headerList.add(Arrays.toString(excelProperty.value()));
           }
       }
       // 返回headerList
       return headerList;
   }

service实现方法:

 @Override
    public HSSFWorkbook  exportToExcel() throws IOException {
            List<String> excelHeader=generateExcelHeader(exportExcelDto.class);
            HSSFWorkbook wb=new HSSFWorkbook();
            HSSFSheet sheet=wb.createSheet("数据标准管理模板");
            HSSFRow row=sheet.createRow(0);
             HSSFCellStyle style = wb.createCellStyle();
             style.setAlignment(HorizontalAlignment.CENTER);
            for (int i = 0; i < excelHeader.size(); i++) {
                HSSFCell cell=row.createCell(i);
                cell.setCellValue(excelHeader.get(i));
                cell.setCellStyle(style);
                sheet.setColumnWidth(cell.getColumnIndex(),100*50);
            }
            return wb;
    }

 成功后,需要前端进行接收,所以前端的代码我就爱莫能助了~

标签:index,TableField,数据库,ExcelProperty,Excel,value,standard,private,模板
From: https://blog.csdn.net/qq_71416673/article/details/136989934

相关文章

  • 03-数据库的用户管理
    一、创建新用户mysql>createuserxjzw@'10.0.0.%'identifiedby'1';QueryOK,0rowsaffected(0.01sec)二、查看当前数据库正在登录的用户mysql>selectuser();+----------------+|user()    |+----------------+|root@localhost|+-----------......
  • 如何利用python 把一个表格某列数据和另外一个表格某列匹配 类似Excel VLOOKUP功能
    环境:python3.8.10Excel2016Win10专业版问题描述:如何利用python把一个表格某列数据和另外一个表格某列匹配类似ExcelVLOOKUP功能先排除两表A列空白单元格,然后匹配x1表格和x2表格他们的A列,把x1表格中A列A1-A810范围对应的B列B1-B810数据,匹配填充到x2范围A1-A479,B1-B......
  • 拓扑排序的模板
    拓扑排序的模板,csdn:https://blog.csdn.net/weixin_43872728/article/details/98981923#include<iostream>#include<vector>#include<cstdio>#include<queue>#include<cstring>#include<algorithm>usingnamespacestd;intin[10......
  • SpringBoot整合Canal进行数据库 缓存同步
    Canal是阿里巴巴开源的一款基于MySQL数据库的增量日志订阅和解析工具,主要用于实现数据的实时同步和流处理。通过使用Canal,应用程序可以实现对数据库变更的监听,并将变更的数据实时同步到其他系统,比如消息队列、缓存系统等。 先记一下缓存雪崩的问题,缓存雪崩是指在我们的......
  • 权限提升-Linux系统权限提升篇&Vulnhub&Capability能力&LD_Preload加载&数据库等
    知识点1、Web或用户到Linux-数据库类型2、Web或用户到Linux-Capability能力3、普通用户到Linux-LD_Preload加载so配合sudo章节点:1、Web权限提升及转移2、系统权限提升及转移3、宿主权限提升及转移4、域控权限提升及转移基础点0、为什么我们要学习权限提升转移技......
  • 从安装python开始教你利用python将excel中的数据导出到txt文件中,并且有如何安装python
    制作方法想到制作这个程序的原因开始写程序前的准备工作安装python第一步:下载python第二步:运行python安装包测试python用python输出你好python安装python库开始编写程序编写前的准备开始编写想到制作这个程序的原因工作的时候,领导说让把表格里的数据导出到txt文......
  • 会员制医疗预约服务管理信息系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读100套最新项目持续更新中.....2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssm+vue等技术项目合集)1.系统功能模块2.管理员功能模块......
  • 财务管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读100套最新项目持续更新中.....2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssm+vue等技术项目合集)目录1.管理员功能效果图1.1.员工功能模块2.系统功能设计3.数据库E......
  • DIjkstra进阶模板 路径记录 按权重(结点数最小等)记录
    structDIJ{usingi64=longlong;usingPII=pair<i64,i64>;vector<i64>dis,path,node;vector<vector<array<int,3>>>G;intn;DIJ(){}DIJ(intn):n(n){node.resize(n+1,1);......
  • MySQL数据库报错:The server quit without updating PID file (/var/lib/mysql/your-h
    在MySQL安装或初次配置过程中,遭遇报错是很常见的一件事,它可能会使你的安装进程暂时停滞。本文将深入探讨一个具体的安装错误,涵盖错误信息、可能的原因,以及详细的解决方案,旨在帮助你高效地解决这一挑战。错误描述安装MySQL过程中,你可能会碰到以下错误信息:Theserverquit......