模板导入导出 excel

Java POI利用反射导入导出Excel、Jxls实现Excel模板导出 初衷:项目中一直没有一个好用的Excel导入导出功能。所以简单实现了导入导出功能分享大家一起讨论和学习 关于本项目说明 导入:基于poi导入做了一层封装、支持注解方式标识属性对应Excel列、并支持简单规则校验、提供校验规则自定义 两种导出:一种基于poi的导出,一种基于jxls模板导出。jxls模板导出可参考:jxls说明 别的就不多BB了,直接上代码。源码包可直接下载使用:点我取源码... 阅读详情

公司的一个功能, 提供用户批量导入系统的模板。

具体如下:

要导入的坐标:

        <!-- poi -->
        <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>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>3.17</version>
        </dependency>
        <!-- XML操作相关 -->
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6</version>
        </dependency>

在resources/templates下创建一个叫importEXCEL.xml的文件。

<root>
    <ConsAccount>
        <cons_name default="1" example="张三">用户名称</cons_name>
    </ConsAccount>
</root>

写一个config

package com.techen.ami.config;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.springframework.util.ResourceUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.List;

/**
 *
 * @Modify: EXCEL导入模板操作类
 * @author: lihao
 * @date: 2021/5/12 17:33
 * @param paraMap
 * @return ResponseResult<Object>
 *
 */
@Configuration
@Component
public class EXCELConfig {

    Document document;

    public EXCELConfig() throws FileNotFoundException, DocumentException {
        File file = ResourceUtils.getFile("classpath:templates/importEXCEL.xml");
        InputStream in = new FileInputStream(file);
        SAXReader reader = new SAXReader();
        document = reader.read(in);
    }

    /**
     *
     * @Modify: 获取模板配置中的所有模板名称
     * @author: lihao
     * @date: 2021/5/15 13:55
     * @param paraMap
     * @return ResponseResult<Object>
     *
     */
    public StringBuffer getAllExcelModelName(){
        StringBuffer result = new StringBuffer();
        // 获取xml文档根节点
        Element root = document.getRootElement();
        List<Element> listElement = root.elements();
        for(int i=0; i<listElement.size(); i++)
        {
            String elementName = listElement.get(i).getName();
            result.append(elementName);
        }
        return  result;
    }

    /**
     *
     * @Modify: 按模版名称获取模版的excel文件
     * @author: lihao
     * @date: 2021/5/15 14:12
     * @param paraMap
     * @return ResponseResult<Object>
     *
     */
    public byte[] getExcelModelByName(String modelName)
    {
        // 获取xml文档根节点
        Element root = document.getRootElement();
        Element element = root.element(modelName);
        if(element == null){
            return null;
        }
        //构造excel文件
        HSSFWorkbook excel =new HSSFWorkbook();
        HSSFSheet sheet0=excel.createSheet(element.getName());
        HSSFRow rowNameExcel = sheet0.createRow(0);
        HSSFRow rowDataExcel = sheet0.createRow(1);
        List<Element> colList = element.elements();
        for(int i=0; i<colList.size(); i++)
        {
            String data = colList.get(i).getData().toString();
            // 标头
            HSSFCell cellExcel = rowNameExcel.createCell(i);
            cellExcel.setCellValue(data);
            // 示例内容
            HSSFCell cellExample = rowDataExcel.createCell(i);
            Attribute attribute = colList.get(i).attribute("example");
            if(attribute != null)
            {
                cellExample.setCellValue(attribute.getValue());
            }
        }
        return excel.getBytes();
    }
}

记录一下, 后续可以复用的代码。

SpringBoot下载xlsx模板,导入导出excel数据 阅读详情

相关推荐

Java使用POI实现Excel导入导出与模板处理实战

Apache POI 是 Java 平台上用于操作 Microsoft Office 文档的开源库,广泛应用于 Excel 文件的导入、导出和数据处理场景。其核心组件包括 HSSF(用于处理 .xls 格式)、XSSF(用于处理 .xlsx 格式)和 SXSSF(基于 XSSF 的内存优化模型),分别适用于不同版本的 Excel 文件。通过 Maven 或 Gradle 引入 POI 依赖后,开发者即可使用其 API 对 Excel 文件进行读写操作。

weixin_32687875的博客 1351

导入excel工具类

导入excel工具类

jah 8972

Apache POI Excel模板导入导出实例详解

Apache POI是Java领域处理Microsoft Office文档(尤其是Excel和Word)的事实标准库。本章将带你了解Apache POI的起源、版本变迁以及它在Java世界中的重要地位。你将学习到POI的核心组件和基本概念,为后续章节中Excel文件的创建、读取、写入和数据导入导出操作打下坚实的基础。

weixin_34618526的博客 455

1.Import Excel

这个是用Java的内置类实现的导入excel: public ResponseData pup2PubTransfer(@RequestParam MultipartFile file, HttpServletResponse response) throws Exception { ImportParams params = new ImportParams(); ...

勇敢牛牛 3350

ImportExcelUtil.java文件支持所有Excel文件解析导入的方法

本文件内含有支持所有Excel文件解析导入的方法

瑞芯微RK3506开发板DSM音频开发避坑指南:从硬件改接到内核配置全流程

本文详细解析了在瑞芯微RK3506开发板上进行DSM音频开发的完整流程与关键避坑点。内容涵盖从硬件改造(如电阻焊接)、内核驱动配置(DTS参数、补丁应用)到系统调试与波形分析的全过程,旨在帮助嵌入式开发者高效实现高信噪比、低成本的音频方案,避免常见错误。

weixin_29164091的博客 405

PowerShell实战(一)PowerShell使用ImportExcel模块轻松操作Excel

ImportExcel模块可以理解为基于PowerShell环境操作Excel的强大类库,使用它可以在 Windows、Linux 和 Mac 上都可以使用。创建表、数据透视表、汇总、图表等操作变得更加容易。首先使用管理员运行Power Shell ISE 开发环境。说明:访问的是微软的网站,会比较慢,大概安装需要等几分钟。点击运行按钮,直接打开Excel如下。4、导出包含汇总列和图表的Excel。安装模块ImportExcel。3、导出包含图表的Excel。2、读取Excel数据。

IT技术分享社区 2538

【STC32G12K128开发板】——从零到一:Keil C251开发环境全攻略

本文详细介绍了为STC32G12K128开发板搭建Keil C251开发环境的完整流程。从环境准备、软件安装、驱动配置到创建第一个工程并下载程序,提供了避坑指南和实用技巧,帮助开发者高效入门这款基于251内核的国产32位单片机开发。

weixin_29192141的博客 362

导入功能importExcel (现成直接用)

导入功能importExcel (现成直接用)

weixin_43652507的博客 1082

大彩串口屏+LUA避坑指南:从Flash读写到控件状态配置的5个常见问题

本文针对大彩串口屏的LUA脚本开发,深度剖析了Flash数据存储与控件状态配置中的5个常见陷阱。重点讲解了如何通过标志位安全初始化Flash、正确处理多字节数据转换,以及如何精准配置按钮与文本控件的状态与事件响应,帮助开发者提升开发效率与代码可靠性。

weixin_27945229的博客 241

SAP_MM/CO模块-超详细的CK11N/CK40N取值逻辑梳理(十几种业务场景,1.76W字)

本文主要讲述的是三个大的知识点,超详细,涉及到知识点比较多,并且串起来讲解,这也是我在网上搜不到相关资料才自己慢慢研究测试出来的,断断续续耗费了我一周多时间,相信只要你们认真看完,肯定会有所收获; 1、CK11N/CK40N成本发布功能中,系统前台的取数逻辑,涉及到多个采购信息记录、生产版本、货源清单、配额协议等对成本价发布的影响~~!! 2、CK11N与CK40N发布的成本价不一致的问题~~!! 3、如何处理外协加工物料的外协价与BOM组件成本取值不匹配的问题~~!!

风沙的博客 4068

【PowerShell】用ImportExcel模块轻松玩转Excel数据处理与可视化

在现代化的数据管理和报告自动化过程中,熟练掌握高效的数据交互工具至关重要。这其中,ImportExcel模块凭借其便捷性及强大的功能脱颖而出,成为PowerShell用户手中不可或缺的利器。为何选择ImportExcel呢?因为它不仅无需安装完整的Microsoft Office组件即可对Excel文件进行读写操作,大大提升了脚本开发效率,而且内置丰富多样的数据处理与可视化功能,可极大地简化日常办公和数据分析任务。

u012153104的博客 2508

四舵轮底盘运动学模型(源码)(四轮四独立转向)二

舵轮4转向活动范围 x 轴正半轴,x轴正方向为0弧度,左正右负, -M_PI/2 < 转向范围 < M_PI/2;移动底盘的正前方为x方向,左侧为y轴方向(遵循右手坐标系,右手大拇指指向天空为z轴方向,食指与中指垂直,食指指向小车正前方为x轴,中指指向为移动底盘y轴方向)转向:逆时针旋转角速度w为正,顺时针旋转角速度w为负。(遵循右手螺旋法则,右手握拳大拇指指向天空为旋转z轴方向,拳垂直于地面,4指方向即底盘转动的正方向)左前轮为1号轮,右前轮为2号轮,左后轮为3号轮,右后轮为4号轮。

苏凯的博客 527

Excel 导入导出 以及下载模板小白板

前端部分特别简单 <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- Meta, title, CSS, favicons, etc. --> <meta c...

weixin_45591668的博客 392

CorelDraw插件开发-Cdr插件-CPG插件-GMS插件-安装位置

文章目录1.gms格式插件2.cpg格式插件3.作者答疑   CorelDraw软件是一款使用非常广泛的矢量图形软件,系统本身提供了非常便利的二次开发环境,制作插件的格式有两种,一种是gms格式的脚本插件,另外一种是cpg格式dll插件。 1.gms格式插件   gms格式插件是使用微软的 VBA 技术,编写和调试都比较方便,从9的版本开始支持。   安装:把gms文件复制到程序所安装的目录 gms 下,一般在C:\Program Files\Corel\CorelDRAW Graphics Suite 1

插件开发 2748

23种设计模式-代理(Proxy)设计模式

软考中级-软件设计师 代理设计模式

片言可决讼,半纸能缚龙 1781

JAVA模板的导入导出_poi基于Excel模板导入导出实例(注释详细,绝对可以用)

【实例简介】poi基于excel模板实现导入导出。代码里附Excel的模板,且注释十分详细!绝对可以用!【实例截图】【核心代码】poi_utils└── poi_utils├── pom.xml├── src│ ├── main│ │ └── java│ │ ├── com│ │ │ └── dhcc│ │ │ └── p...

weixin_36064484的博客 281

uniapp [全端兼容] - 实现接入使用天地图及卫星视图切换功能,在国家天地图上自由切换地图显示类型(卫星视图/地形视图/卫星混合/地形混合/普通视图)天地图切换视图显示改成卫星风格,切换地图图层

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,天地图,视图,卫星,地图类型切换,uniAPP天地图,改成卫星视角,在线地图切换,来回切换卫星图,天地图如何实现来回切换卫星图,地形图,卫星视图,VUE3引入天地图卫星版,详细教程示例源码代码,天地图切换卫星用什么api,卫星视角API方法,vue3卫星天地图,能改地图的显示方式,vue3中使用天地图自定义样式切换地图图层,切换报错,加载出错,卫星图太卡,地图图层更换,vue3安装集成天地图详细示例源

🏆 前端领域优质创作者 1万+

easyPOI(基于注解导入导出excel表,基于excel模板导出,apache poi和easypoi版本冲突问题)

easyPOI(基于注解导入导出excel表,基于excel模板导出,apache poi和easypoi版本冲突问题)

weixin_49385823的博客 1743

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

导入导出Excel之模板方法模式运用

一、概述 在日常的开发过程种,excel报表是常见的一个需求。 execel的操作,可以分为两种,一种是读,一种是写,其他的项目辅助性的操作都是具有共性的,我们就可以将读和写抽象出来,针对简单的Excel导入导出操作,做一个标准的实现。但是在实际的需求中,列的合并,行的合并也是常有的需求,我们可以针对这些特定的需求,快速实现复杂Execel的开发。 二、设计 针对上述的需求,我们采用...

qq_36669747的博客 1115

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java 利用EasyPoi做Excel模板的导入导出操作

Java 利用EasyPoi做Excel模板的导入导出操作项目背景加入pom依赖项目Excel模板图代码实现首先是实体类定义Excel 实现导入Excel的导出结束语 项目背景 作为一名传统业务的程序员,每天都要不得不面对对各种类型的Excel的操作。想想都让人头疼。尤其是那种表头有的要纵向合并单元格,有的横向单元格合并的Excel,听听就让人头脑发麻。 最近,在做这方面的Excel操作的时候,就...

农名工 1889

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ftl模板导出excel_EXCEL操作神器,快速导入导出,easypoi值得你尝试

话不多说,直接上地址:https://gitee.com/lemur/easypoi介绍:POI 工具类,Excel的快速导入导出,Excel模板导出,Word模板导出,可以仅仅5行代码就可以完成Excel的导入导出,修改导出格式简单粗暴,快速有效,easypoi值得你尝试excle操作帮助文档https://gitee.com/lemur/easypoi帮助文档 帮助文档包含10个部分:1. 前...

weixin_36074668的博客 370

Excel 批量导入导出怎么做?这篇教你全流程处理与模板设计!

本文详细介绍了Excel批量导入导出功能的实现方案。主要内容包括:常见业务场景(用户导入、商品导出等)、数据库表设计、导入/导出流程说明(含数据校验)、Python Flask和Java Spring Boot的代码实现示例、前端Vue组件设计,以及接口文档模板。文章强调数据校验的重要性,建议提供Excel模板下载功能,并指出一个成熟的方案应支持格式校验、错误提示、分页导出等功能,推荐封装为通用组件复用。整体提供了从技术选型到具体实现的完整指导方案。

m0_57021623的博客 1038

EasyPoi使用指定的模板导入导出excel

【代码】EasyPoi使用指定的模板导入导出excel。

wuwuwulelele的博客 1020

JeecgBoot数据导入导出:Excel处理与模板定制

你是否还在为企业级应用中的Excel数据处理烦恼?手动编写导入导出代码耗时费力,格式转换容易出错,模板定制更是无从下手?本文将带你一文掌握JeecgBoot框架的Excel数据处理全流程,从基础导入导出到高级模板定制,让你轻松应对各类数据管理场景。读完本文后,你将能够:快速实现Excel数据导入导出功能、定制符合业务需求的Excel模板、处理复杂数据转换与校验逻辑。 ## 一、JeecgBoot...

gitblog_00745的博客 1321

C#读写导入导出Excel表格模板(NPOI)

NPOI介绍: NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。 NPOI优势: 1、您可以完全免费使用该框架 2、包含了大部分EXCEL的特性(单元格样式、数据格式、公式等等) 3、专业的技术支持服务(24*7全天候) (非免费) 4、支持处理的文件格式包括xls, xlsx, docx. 5、采用面向接口的设计架构( 可以查看 NPO

My note 6401
上一篇: springboot 全局异常处理
下一篇: docker 创建MySQL容器
libingbojava
博客等级 码龄9年 64粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值