iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java如何利用POI实现导入导出Excel表格
  • 849
分享到

Java如何利用POI实现导入导出Excel表格

2023-07-06 04:07:57 849人浏览 八月长安
摘要

这篇文章主要介绍“Java如何利用POI实现导入导出excel表格”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何利用POI实现导入导出Excel表格”文章能帮助大家解决问题。一、Java

这篇文章主要介绍“Java如何利用POI实现导入导出excel表格”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何利用POI实现导入导出Excel表格”文章能帮助大家解决问题。

一、Java利用POI实现导入导出Excel表格demo

1.引入依赖

<dependency>      <groupId>org.apache.poi</groupId>      <artifactId>poi-ooxml</artifactId>       <version>4.1.2</version></dependency>

2.导入demo

1 controller层

    @PostMapping("/import")    public Result userImport2(@RequestParam("file") MultipartFile file) throws Exception{        Result result=userService.userImportExcel(file);        return result;    }

2 service实现类层

public Result userImportExcel(MultipartFile file){    try {        InputStream inputStream = file.getInputStream();        XSSFWorkbook sheets = new XSSFWorkbook(inputStream);        //获取表单sheet 第一个        XSSFSheet sheetAt = sheets.getSheetAt(0);        //获取第一行        int firstRowNum = sheetAt.getFirstRowNum();        //最后一行        int lastRowNum = sheetAt.getLastRowNum();        //存入数据集合        List<User> users=new ArrayList<>();        //遍历数据        for(int i=firstRowNum+1;i<lastRowNum+1;i++){            XSSFRow row = sheetAt.getRow(i);            if(row!=null){                               //这里我就直接赋值                User user = new User();                user.setUname(row.getCell(0).getStrinGCellValue());                user.setUpassword(row.getCell(1).getStringCellValue());                user.setUsex(row.getCell(2).getStringCellValue());                user.setRole(row.getCell(3).getStringCellValue());                user.setUlove((int) row.getCell(4).getNumericCellValue());                user.setUphoto(row.getCell(5).getStringCellValue());                user.setUaddress(row.getCell(6).getStringCellValue());                users.add(user);            }        }        //保存数据        saveBatch(users);        return Result.success();    }catch (Exception e){        e.printStackTrace();        log.info("error:{}",e);    }    return Result.error("300","导入失败");}public String getValue(HSSFCell cell) {    if(cell==null){        return "";    }    String cellValue= "";    try {        DecimalFORMat df=new DecimalFormat("0.00");        if(cell.getCellType()== CellType.NUMERIC){            //日期时间转换            if(HSSFDateUtil.isCellDateFormatted(cell)){                cellValue=DateFormatUtils.format(cell.getDateCellValue(),"yyyy-MM-dd");            }else{                NumberFormat instance = NumberFormat.getInstance();                cellValue=instance.format(cell.getNumericCellValue()).replace(",","");            }        }else if(cell.getCellType() == CellType.STRING){            //字符串            cellValue=cell.getStringCellValue();        }else if(cell.getCellType() == CellType.BOOLEAN){            //Boolean            cellValue= String.valueOf(cell.getBooleanCellValue());        }else if(cell.getCellType() == CellType.ERROR){            //错误        }else if(cell.getCellType() == CellType.FORMULA){            //转换公式 保留两位            cellValue=df.format(cell.getNumericCellValue());        }else{            cellValue=null;        }    } catch (Exception e) {        e.printStackTrace();        cellValue="-1";    }    return cellValue;}

3.导出demo

1 controller层

@GetMapping("/export")public Result userExport2(httpservletResponse response) throws Exception{    Result result=userService.userExportExcel(response);    return result;}

2 service实现类

public Result userExportExcel(HttpServletResponse response) {    try {        //创建excel        XSSFWorkbook sheets = new XSSFWorkbook();        //创建行        XSSFSheet sheet = sheets.createSheet("用户信息");        //格式设置        XSSFCellStyle cellStyle = sheets.createCellStyle();        //横向居中        cellStyle.setAlignment(HorizontalAlignment.CENTER);        //创建单元格第一列        XSSFRow row = sheet.createRow(0);        //表头        this.titleExcel(row,cellStyle);        //查询全部的用户数据  mybatis-plus        List<User> list = list();        //遍历设置值        for(int i=0;i<list.size();i++){            XSSFRow rows = sheet.createRow(i+1);            User user=list.get(i);            //表格里赋值            this.titleExcelValue(user,rows,cellStyle);        }        //设置浏览器响应格式        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");        String filName= URLEncoder.encode("用户信息","UTF-8");        response.setHeader("Content-Disposition","attachment;filename="+filName+".xls");        ServletOutputStream outputStream=response.getOutputStream();        sheets.write(outputStream);        outputStream.close();        sheets.close();        return Result.success();    }catch (Exception e){        e.printStackTrace();        log.info("error:{}",e);    }    return Result.error("300","导出失败");}public void titleExcelValue(User user, XSSFRow row,XSSFCellStyle cellStyle) {    XSSFCell cellId = row.createCell(0);    cellId.setCellValue(user.getUid());    cellId.setCellStyle(cellStyle);    XSSFCell cellUserName = row.createCell(1);    cellUserName.setCellValue(user.getUname());    cellUserName.setCellStyle(cellStyle);    XSSFCell cellPassWord = row.createCell(2);    cellPassword.setCellValue(user.getUpassword());    cellPassword.setCellStyle(cellStyle);    XSSFCell cellSex = row.createCell(3);    cellSex.setCellValue(user.getUsex());    cellSex.setCellStyle(cellStyle);    XSSFCell cellRole = row.createCell(4);    cellRole.setCellValue(user.getRole());    cellRole.setCellStyle(cellStyle);    XSSFCell cellLoveValue = row.createCell(5);    cellLoveValue.setCellValue(user.getRole());    cellLoveValue.setCellStyle(cellStyle);    XSSFCell cellPhone = row.createCell(6);    cellPhone.setCellValue(user.getUphoto());    cellPhone.setCellStyle(cellStyle);    XSSFCell cellAddress = row.createCell(7);    cellAddress.setCellValue(user.getUaddress());    cellAddress.setCellStyle(cellStyle);}public void titleExcel(XSSFRow row,XSSFCellStyle cellStyle){    XSSFCell cellId = row.createCell(0);    cellId.setCellValue("用户ID");    cellId.setCellStyle(cellStyle);    XSSFCell cellUserName = row.createCell(1);    cellUserName.setCellValue("用户名");    cellUserName.setCellStyle(cellStyle);    XSSFCell cellPassword = row.createCell(2);    cellPassword.setCellValue("密码");    cellPassword.setCellStyle(cellStyle);    XSSFCell cellSex = row.createCell(3);    cellSex.setCellValue("性别");    cellSex.setCellStyle(cellStyle);    XSSFCell cellRole = row.createCell(4);    cellRole.setCellValue("角色");    cellRole.setCellStyle(cellStyle);    XSSFCell cellLoveValue = row.createCell(5);    cellLoveValue.setCellValue("爱心值");    cellLoveValue.setCellStyle(cellStyle);    XSSFCell cellPhone = row.createCell(6);    cellPhone.setCellValue("电话号码");    cellPhone.setCellStyle(cellStyle);    XSSFCell cellAddress = row.createCell(7);    cellAddress.setCellValue("地址");    cellAddress.setCellStyle(cellStyle);}
二、Hutool工具类封装方法导出导入Excel

1.引入依赖

把poi封装到工具类方法里面

<!-- hutool  -->        <dependency>            <groupId>cn.hutool</groupId>            <artifactId>hutool-all</artifactId>            <version>5.7.20</version>        </dependency>        <dependency>            <groupId>org.apache.poi</groupId>            <artifactId>poi-ooxml</artifactId>            <version>4.1.2</version></dependency>

2.导入demo

@PostMapping("/import")public Result userImport(@RequestParam("file") MultipartFile file) throws Exception{        System.out.println(file.toString());        //InputStream inputStream = multipartFile.getInputStream();        InputStream inputStream = file.getInputStream();        ExcelReader reader = ExcelUtil.getReader(inputStream);        //读取表的内容        List<List<Object>> list = reader.read(1);        List<User> users = new ArrayList<>();        for(List<Object> row : list){            User user = new User();            user.setUname(row.get(0).toString());            user.setUpassword(row.get(1).toString());            user.setUsex(row.get(2).toString());            user.setRole(row.get(3).toString());            user.setUlove(Integer.valueOf(row.get(4).toString()));            user.setUphoto(row.get(5).toString());            user.setUaddress(row.get(6).toString());            users.add(user);        }        //批量插入用户信息 mybatis-plus        userService.saveBatch(users);        return Result.success();    }

3.导出demo

     @GetMapping("/export")    public Result userExport(HttpServletResponse response) throws Exception{        //查询全部的用户数据        List<User> list = userService.list();        //在内存里做操作,保存到浏览器        ExcelWriter writer = ExcelUtil.getWriter(true);        //自定义标题别名        writer.addHeaderAlias("uname","用户名");        writer.addHeaderAlias("upassword","密码");        writer.addHeaderAlias("usex","性别");        writer.addHeaderAlias("role","角色");        writer.addHeaderAlias("ulove","爱心值");        writer.addHeaderAlias("uphoto","电话号码");        writer.addHeaderAlias("uaddress","地址");        //一次性写出list内的对象的Excel,使用默认样式,强制输出标题        writer.write(list,true);        //设置浏览器响应格式        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");        String filName= URLEncoder.encode("用户信息","UTF-8");        response.setHeader("Content-Disposition","attachment;filename="+filName+".xls");        ServletOutputStream outputStream=response.getOutputStream();        writer.flush(outputStream,true);        outputStream.close();        writer.close();        return Result.success();    }

关于“Java如何利用POI实现导入导出Excel表格”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Java如何利用POI实现导入导出Excel表格

本文链接: https://www.lsjlt.com/news/357709.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java如何利用POI实现导入导出Excel表格
    这篇文章主要介绍“Java如何利用POI实现导入导出Excel表格”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何利用POI实现导入导出Excel表格”文章能帮助大家解决问题。一、Java...
    99+
    2023-07-06
  • Java利用POI实现导入导出Excel表格
    本文实例为大家分享了Java利用POI实现导入导出Excel表格的具体代码,供大家参考,具体内容如下 一、Java利用POI实现导入导出Excel表格demo 1.引入依赖 <...
    99+
    2024-04-02
  • Java Poi导出Excel表格详解
    一、导出下面的表格 二、流程详解         1、导出excel需要先将数据准备好         2、创建工作傅对象SXSSFWorkbook         3、使用工作傅对象创建sheet对象(工作页)         4、使用...
    99+
    2023-09-01
    java
  • Java用POI导入导出Excel实例分析
    1、异常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException 解决方法: 使用的...
    99+
    2024-04-02
  • SpringBoot中如何使用POI导入导出Excel
    SpringBoot中如何使用POI导入导出Excel,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.创建Excel文档HSSFWorkbook workboo...
    99+
    2023-06-19
  • vue怎么实现excel表格的导入导出
    这篇文章主要介绍“vue怎么实现excel表格的导入导出”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么实现excel表格的导入导出”文章能帮助大家解决问题。一、下载xlsx插件npm&nb...
    99+
    2023-07-06
  • Java原生POI实现的Excel导入导出(简单易懂)
    1.首先需要引入jar包 org.apache.poi poi 3.15 or...
    99+
    2023-09-01
    java excel 开发语言
  • vue实现excel表格的导入导出的示例
    目录一、下载xlsx插件二、通过element-ui组件的upload组件上传文件三、把选择的Excel文件把文件内容转化为二进制四、通过插件中的xlsx.read()读取二进制数据...
    99+
    2023-05-15
    vue excel导入导出 vue excel导入 vue excel导出
  • java如何实现Excel的导入、导出操作
    这篇文章主要为大家展示了java如何实现Excel的导入、导出操作,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。一、Excel的导入导入可采用两种方式,一种是JXL,另一种是POI,但前者不能...
    99+
    2023-05-31
    java excel
  • Java之使用POI教你玩转Excel导入与导出
    目录POI 简介POI依赖文件POI常用类数据导出设置样式数据导入在平时开发项目时对数据的处理肯定是少不了的。对于数据处理也是很多程序员比较头疼的问题,就比如项目中的数据是如何添加进...
    99+
    2022-11-13
    Java使用POI Java Excel导入 Java Excel导出
  • Java中用POI实现将数据导出到Excel
    一、前言 数据导出为Excel在我们写项目的过程中经常用到 需要用到的jar包 poi-3.17.jar 二、具体实现步骤 //第一步创建一个webbook,对应一个Excel...
    99+
    2024-04-02
  • 在Java Web中Excel文件如何使用POI实现导出
    在Java Web中Excel文件如何使用POI实现导出?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。采用Spring mvc架构:Controller层代码如下@Cont...
    99+
    2023-05-31
    java web poi
  • SpringBoot集成POI实现Excel导入导出的示例详解
    目录知识准备什么是POIPOI中基础概念实现案例Pom依赖导出Excel导入Excel示例源码知识准备 需要了解POI工具,以及POI对Excel中的对象的封装对应关系。 什么是PO...
    99+
    2024-04-02
  • 《springboot中实现excel表格导出》
    《springboot中实现excel表格导出》 简介 在Spring Boot中,实现Excel表格导出的方式有很多种,以下是几种常见的方法: 使用Apache POI:Apache POI是一个开源的Java API,用于处理Micro...
    99+
    2023-08-23
    spring boot excel java
  • java如何使用EasyExcel导入导出excel
    这篇文章主要介绍了java如何使用EasyExcel导入导出excel,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、准备工作1、导包<!-- poi&nb...
    99+
    2023-06-15
  • Java+element实现excel的导入和导出
    目录一、上传excel前端代码二、上传excel后端代码三、下载excel前端代码四、下载excel后端代码本项目是前端vue3,后端springboot开发 需求为:前端导入表格,...
    99+
    2023-05-16
    Java element excel导入和导出 Java excel导入 Java excel导出
  • Java使用POI实现导出Excel的方法详解
    目录一、前景二、概念2.1. 简介2.2.Excel版本和相关对象2.3.WorkBook2.4.POI依赖三、POI - 写3.1.代码示例3.2. 性能对比3.3. 测试rowA...
    99+
    2022-11-13
    Java POI导出Excel Java POI Excel Java 导出Excel Java POI
  • Java利用POI导入Excel数据(多个sheet、模板)
    需求:根据excel模板导入数据            sheet1:1-6行为固定格式,且需要取值({xxx});7行开始为数据集合(list)            sheet2:都为固定格式,取值地方:{xxx}         1...
    99+
    2023-09-14
    excel java
  • Java使用POI导出Excel(一):单sheet
    相关文章: Java使用POI导出Excel(一):单sheet Java使用POI导出Excel(二):多个sheet 相信在大部分的web项目中都会有导出导入Excel的需求,今...
    99+
    2024-04-02
  • 使用SpringBoot+EasyExcel+Vue实现excel表格的导入和导出详解
    目录一、导入和导出二、导出数据为excel实现过程三、将excel中的数据导入到数据库中一、导入和导出 导入:通过解析excel表格中的数据,然后将数据放到一个集合中,接着通过对持久...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作