iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >教你如何使用JAVA POI
  • 201
分享到

教你如何使用JAVA POI

2024-04-02 19:04:59 201人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、导入jar包二、导出三、导出一、导入jar包 所需jar包,在pom中添加如下坐标即可 <dependency> <groupId>org

一、导入jar包

所需jar包,在pom中添加如下坐标即可


<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>

注意:

操作excel文件区分版本:

2003版本(包含2003)以前的扩展名为.xls需要用HSSFWorkbook类操作
2007版本(包含2007)以后的扩展名为.xlsx需要用XSSFWorkbook类操作

二、导出

2007版本(包含2007)以后的扩展名为.xlsx需要用XSSFWorkbook类操作

2003版本(包含2003)以前的扩展名为.xls需要用HSSFWorkbook类操作
和 07基本相似 就是把XSSFWorkbook换成HSSFWorkbook

后缀名改成 点xls


package com.zph.poi;

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.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service;

import javax.servlet.ServletOutputStream;
import javax.servlet.Http.httpservletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;

@Service
public class PoiServiceImpl {


    public void exportExcel2007() throws IOException {
        //创建工作簿 类似于创建Excel文件
        XSSFWorkbook workbook=new XSSFWorkbook();
        //创建 sheetname页名
        XSSFSheet sheet = workbook.createSheet("员工信息");
        sheet.setColumnWidth(3,20*256);//给第3列设置为20个字的宽度
        sheet.setColumnWidth(4,20*256);//给第4列设置为20个字的宽度
        //创建一行,下标从0开始
        XSSFRow row = sheet.createRow(0);
        //创建这行中的列,下标从0开始 (表头)
        XSSFCell cell = row.createCell(0);
        // 给cell 0下表赋值
        cell.setCellValue("姓名");
        //创建这行中的列,并给该列直接赋值
        row.createCell(1).setCellValue("年龄");
        row.createCell(2).setCellValue("性别");
        row.createCell(3).setCellValue("生日");
        row.createCell(4).setCellValue("手机号");
        // 设置表里内容
        row = sheet.createRow(1);
        row.createCell(0).setCellValue("T");
        row.createCell(1).setCellValue("保密");
        row.createCell(2).setCellValue("男");
        row.createCell(3).setCellValue("保密");
        row.createCell(4).setCellValue("12121212121");

        row = sheet.createRow(2);
        row.createCell(0).setCellValue("T");
        row.createCell(1).setCellValue("18");
        row.createCell(2).setCellValue("女");
        row.createCell(3).setCellValue("2000-01-01");
        row.createCell(4).setCellValue("12121212122");
        //设定 路径
        File file = new File("D:\\zph\\temp\\员工信息2007.xlsx");
        FileOutputStream stream = new FileOutputStream(file);
        // 需要抛异常
        workbook.write(stream);
        //关流
        stream.close();
    }

    public void exportExcel2003() throws IOException {
        //创建工作簿 类似于创建Excel文件
        HSSFWorkbook workbook=new HSSFWorkbook();
        //创建 sheetname页名
        HSSFSheet sheet = workbook.createSheet("员工信息");
        //创建一行,下标从0开始
        HSSFRow row = sheet.createRow(0);
        //创建这行中的列,下标从0开始 (表头)
        HSSFCell cell = row.createCell(0);
        // 给cell 0下表赋值
        cell.setCellValue("姓名");
        //创建这行中的列,并给该列直接赋值
        row.createCell(1).setCellValue("年龄");
        row.createCell(2).setCellValue("性别");
        row.createCell(3).setCellValue("生日");
        row.createCell(4).setCellValue("手机号");
        // 设置表里内容
        row = sheet.createRow(1);
        row.createCell(0).setCellValue("T");
        row.createCell(1).setCellValue("保密");
        row.createCell(2).setCellValue("男");
        row.createCell(3).setCellValue("保密");
        row.createCell(4).setCellValue("12121212121");

        row = sheet.createRow(2);
        row.createCell(0).setCellValue("T");
        row.createCell(1).setCellValue("18");
        row.createCell(2).setCellValue("女");
        row.createCell(3).setCellValue("2000-01-01");
        row.createCell(4).setCellValue("12121212122");

        //第一种导出 给定路径
        //1设定 路径 创建文件读进来在写内容
        File file = new File("D:\\zph\\temp\\员工信息2003.xls");
        FileOutputStream stream = new FileOutputStream(file);
        // 需要抛异常
        workbook.write(stream);
        //关流
        stream.close();




    }
    public void exportExcel2003(HttpServletRequest request, HttpServletResponse response) throws IOException {
        //第二种导出 从项目中获取模板
        //String realPath = request.getSession().getServletContext().getRealPath("/");
        Resource resource = new ClassPathResource("templates/员工信息2003Tem.xls");//jar包获取

        //创建工作簿 类似于创建Excel文件
        HSSFWorkbook workbookTem=new HSSFWorkbook(resource.getInputStream());
        //创建 sheetname页名
        HSSFSheet sheetTem = workbookTem.getSheet("员工信息");
        //HSSFSheet sheetTem = workbookTem.getSheetAt(0);
        HSSFRow rowTem = sheetTem.createRow(1);
        rowTem.createCell(0).setCellValue("xmtem");
        rowTem.createCell(1).setCellValue("nltem");
        rowTem.createCell(2).setCellValue("xbtem");
        rowTem.createCell(3).setCellValue("srtem");
        rowTem.createCell(4).setCellValue("sjhtem");
        ServletOutputStream outputStream = response.getOutputStream();
        response.reset();
        String fileName = URLEncoder.encode("员工信息TemOut.xls", "utf-8");
        response.setHeader("Content-disposition","attachment;filename="+fileName);
        response.setContentType("application/x-download;charset=UTF-8");
        // 对响应客户请求进行重新编码11
        //response.setCharacterEncoding("utf-8");

        workbookTem.write(outputStream);

        outputStream.close();
    }
    public String exportExcel2003(String s,HttpServletRequest request, HttpServletResponse response) throws IOException {
        //第三种直接导出


        //创建工作簿 类似于创建Excel文件
        HSSFWorkbook workbookTem=new HSSFWorkbook();
        //创建 sheetname页名
        HSSFSheet sheet = workbookTem.createSheet("员工信息");
        //创建一行,下标从0开始
        HSSFRow row = sheet.createRow(0);
        //创建这行中的列,下标从0开始 (表头)
        HSSFCell cell = row.createCell(0);
        // 给cell 0下表赋值
        cell.setCellValue("姓名");
        //创建这行中的列,并给该列直接赋值
        row.createCell(1).setCellValue("年龄");
        row.createCell(2).setCellValue("性别");
        row.createCell(3).setCellValue("生日");
        row.createCell(4).setCellValue("手机号");
        // 设置表里内容
        row = sheet.createRow(1);
        row.createCell(0).setCellValue("T");
        row.createCell(1).setCellValue("保密");
        row.createCell(2).setCellValue("男");
        row.createCell(3).setCellValue("保密");
        row.createCell(4).setCellValue("12121212121");

        row = sheet.createRow(2);
        row.createCell(0).setCellValue("T");
        row.createCell(1).setCellValue("18");
        row.createCell(2).setCellValue("女");
        row.createCell(3).setCellValue("2000-01-01");
        row.createCell(4).setCellValue("12121212122");





        ServletOutputStream outputStream = response.getOutputStream();
        response.reset();

        String fileName = URLEncoder.encode("员工信息TemOut.xls", "utf-8");
        response.setHeader("Content-disposition","attachment;filename="+fileName);
        //response.setContentType("application/x-download;charset=UTF-8");
        response.setContentType("application/vnd.ms-excel");
        //response.setContentType("application/msexcel");
        // 对响应客户请求进行重新编码11
        //response.setCharacterEncoding("utf-8");

        workbookTem.write(outputStream);

        outputStream.close();
        return s;
    }
}


三、导出


@RequestMapping(value="/upload")
    public String  uploadExcel(@RequestParam("fileData") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception {
        InputStream in = file.getInputStream();
        String s = poiService.uploadExcel(file, request, response);

        return s;
    }


public String  uploadExcel(MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception {
        InputStream in = file.getInputStream();
        //D:\zph\temp
        // 多态  抛异常
        //Workbook sheets = new XSSFWorkbook(stream);
        HSSFWorkbook sheets = new HSSFWorkbook(in);
        //获取一个工作表(sheet页),下标从0开始
        HSSFSheet sheet = sheets.getSheetAt(0);

        for (int i = 1; i<=sheet.getLastRowNum() ; i++) {


            // 获取行数
            Row row = sheet.getRow(i);
            // 获取单元格 取值
            String value1 = row.getCell(0).getStrinGCellValue();
            String value2 = row.getCell(1).getStringCellValue();
            String value3 = row.getCell(2).getStringCellValue();
            String value4 = row.getCell(3).getStringCellValue();
            String value5= row.getCell(4).getStringCellValue();

            System.out.println(value1);
            System.out.println(value2);
            System.out.println(value3);
            System.out.println(value4);
            System.out.println(value5);
        }


        //关流
        sheets.close();
        in.close();

        return "hha";
    }

postman 设置 post请求 请求头 Content-Type multipart/fORM-data

在这里插入图片描述

到此这篇关于教你如何使用JAVA POI的文章就介绍到这了,更多相关JAVA POI内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 教你如何使用JAVA POI

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

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

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

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

下载Word文档
猜你喜欢
  • 教你如何使用JAVA POI
    目录一、导入jar包二、导出三、导出一、导入jar包 所需jar包,在pom中添加如下坐标即可 <dependency> <groupId>org...
    99+
    2024-04-02
  • Java之使用POI教你玩转Excel导入与导出
    目录POI 简介POI依赖文件POI常用类数据导出设置样式数据导入在平时开发项目时对数据的处理肯定是少不了的。对于数据处理也是很多程序员比较头疼的问题,就比如项目中的数据是如何添加进...
    99+
    2022-11-13
    Java使用POI Java Excel导入 Java Excel导出
  • Java如何使用POI操作Excel
    这篇文章主要介绍了Java如何使用POI操作Excel,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Java使用POI操作Excel ...
    99+
    2024-04-02
  • 一文教你如何在java中使用SpringMVC
    这期内容当中小编将会给大家带来有关一文教你如何在java中使用SpringMVC,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、简介在SpringMVC 中,控制器Controller 负责处理由Dis...
    99+
    2023-05-31
    java springmvc ava
  • 一文教你如何在Java 中使用Calendar类
    今天就跟大家聊聊有关一文教你如何在Java 中使用Calendar类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java Calendar类的使用总结  在实际项目当中,我们经常会...
    99+
    2023-05-31
    java calendar ava
  • 教你如何使用Java输出各种形状
    目录1、输出矩形3、输出平行四边形4、输出三角形5、输出菱形5、输出空心菱形6、输出正方形7、输出实心菱形1、输出矩形 以此矩形案例(4行,9列的矩形)为例 public sta...
    99+
    2024-04-02
  • java怎么使用poi生成excel
    这篇文章主要介绍“java怎么使用poi生成excel”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java怎么使用poi生成excel”文章能帮助大家解决问题。使用poi生成excel通常包含一下...
    99+
    2023-06-30
  • 教你如何用好 Java 中的枚举
    目录1.概览2.自定义枚举方法3.使用 == 比较枚举类型4.在 switch 语句中使用枚举类型6.EnumSet and EnumMap6.1. EnumSet6.2. Enum...
    99+
    2024-04-02
  • 教你如何用Java简单爬取WebMagic
    一、Java爬虫——WebMagic  1.1 WebMagic总体架构图 1.2 WebMagic核心组件 1.2.1 Downloader 该组件负责从互联网上下载页...
    99+
    2024-04-02
  • 教你用Java SpringBoot如何解决跨域
    目录跨域什么是跨域CORSSpringBoot解决跨域方案1.使用@CrossOrigin注解2.Spring框架全局配置CORS配置具体实现1.使用@CrossOrigin注解1....
    99+
    2024-04-02
  • 教你如何在pycharm中使用less
    前端css中用到less,在pycharm中安装配置less操作步骤如下: 1.点开setting,在Plugins中搜索node.js(安装less之前得安装node.js),安装...
    99+
    2024-04-02
  • 在Java Web中Excel文件如何使用POI实现导出
    在Java Web中Excel文件如何使用POI实现导出?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。采用Spring mvc架构:Controller层代码如下@Cont...
    99+
    2023-05-31
    java web poi
  • Java SpringBoot集成文件之如何使用POI导出Word文档
    目录前言知识准备什么是POI实现案例Pom依赖导出Word前言 通过Apache POI导出excel,而Apache POI包含是操作Office Open XML(OOXML)标...
    99+
    2022-11-13
    Java SpringBoot集成文件 Java 如何使用POI导出Word文档
  • 教你如何在Nuxt3中使用wavesurfer.js
    目录安装 wavesurfer.js常规方式引入正确的引入方式加载插件加载波形数据暴露插件的方法项目安装 wavesurfer.js 在项目中安装 wavesurfer.js npm...
    99+
    2023-01-15
    Nuxt 3 使用 wavesurfer.js wavesurfer.js使用
  • java使用poi生成excel的步骤
    使用poi生成excel通常包含一下几个步骤 创建一个工作簿创建一个sheet创建一个Row对象创建一个cell对象(1个row+1个cell构成一个单元格)设置单元格内容设置单元格...
    99+
    2024-04-02
  • 教你如何在Pytorch中使用TensorBoard
    什么是TensorboardX Tensorboard 是 TensorFlow 的一个附加工具,可以记录训练过程的数字、图像等内容,以方便研究人员观察神经网络训练过程。可是对于 ...
    99+
    2024-04-02
  • 教你如何使用Java多线程编程LockSupport工具类
    目录LockSupport类LockSupport.park()1.调用unpack方法获得许可2.调用中断interrupts方法获得许可parkNanos(long nanos)...
    99+
    2024-04-02
  • Java使用POI导出Excel(一):单sheet
    相关文章: Java使用POI导出Excel(一):单sheet Java使用POI导出Excel(二):多个sheet 相信在大部分的web项目中都会有导出导入Excel的需求,今...
    99+
    2024-04-02
  • SpringBoot中如何使用POI导入导出Excel
    SpringBoot中如何使用POI导入导出Excel,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.创建Excel文档HSSFWorkbook workboo...
    99+
    2023-06-19
  • 教你怎么使用Java实现WebSocket
    目录一、WebSocket简介1.1 WebSocket协议1.2 WebSocket支持的消息类型二、创建一个WebSocket程序2.1 生命周期方法2.2 业务逻辑方法2.3 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作