写点什么

Spring Boot 如何获取 Excel sheet 页?

作者:bug菌
  • 2023-04-27
    江苏
  • 本文字数:1870 字

    阅读完需:约 6 分钟

Spring Boot如何获取Excel sheet页?

👨‍🎓作者:bug 菌

✏️博客:CSDN、掘金、infoQ、51CTO 等

🎉简介:CSDN 博客专家,C 站历届博客之星 Top50,掘金/InfoQ/51CTO 等社区优质创作者,全网粉丝合计 10w+,对一切技术感兴趣,重心偏 Java 方向;硬核公众号「 猿圈奇妙屋」,欢迎小伙伴们的加入,一起秃头,一起变强。

..

✍️温馨提醒:本文字数:1999 字, 阅读完需:约 5 分钟

        如果小伙伴们在批阅文章的过程中觉得文章对自己有帮助,请别吝啬手中的赞呀,大胆的把文章点亮👍,相信你点赞了好的文章,平台也会经常给你推荐高质量好文,您的点赞三连(收藏+关注+留言)就是对 bug 菌写文道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

一、前言🔥

环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

        收到一位读者的留言,问我如何判断 Excel 文件 sheet 数量,估计他做的业务是需要得知具体 sheet 数量再进行对于的 excel 读取业务吧。

        既然如此,那我肯定不会坐视不理,bug 菌通常有求必应新时代活雷锋之称,今天,我就来带着大家来实现一下,java 到底如何获取 sheet 数量?

二、正文🔥

        其实实现它很简单,我们压根不需要重复造轮子,首先 Apache POI 提供的第三方 jar 包,就已经完全够用,提供 API 对 Microsoft Office(Excel、word、PowerPoint、Visio 等)格式文件进行读和写的功能。而对于 excel,HSSFWorkbook 可用来支持 Java 从 97 到 2007+版本的 Excel 读写,在开发中我们经常使用 HSSF 用来操作 Excel 处理表格数据, 而 XWPF: 提供读写 Microsoft Word DOC2003 格式档案的功能等。

        对于 HSSFWorkbook,它是一个工作簿,代表一个 excel 的整个文档。

如下是具体 poi 包引入依赖:

<dependency>      <groupId>org.apache.poi</groupId>      <artifactId>poi</artifactId>      <version>4.1.1</version>  </dependency>
复制代码


如下是 HSSFWorkbook 常用的一些方法。其中就包含本文所需要使用到的方法。

  • HSSFWorkbook(); // 创建一个新的工作簿

  • HSSFWorkbook(InputStream inputStream); // 创建一个关联输入流的工作簿,可以将一个 excel 文件封装成工作簿

  • HSSFSheet createSheet(String sheetname); 创建一个新的 Sheet

  • HSSFSheet getSheet(String sheetName); 通过名称获取 Sheet

  • HSSFSheet getSheetAt(int index); // 通过索引获取 Sheet,索引从 0 开始

  • HSSFCellStyle createCellStyle(); 创建单元格样式

  • int getNumberOfSheets(); 获取 sheet 的个数

  • setActiveSheet(int index); 设置默认选中的工作表

        创建一个 HSSFWorkbook 类,我们可以发现还有很多方法,这些大家自行拓展,本文便不再一一赘述。

三、代码实现🔥

​​        接下来,我就来实现如何获取 sheet 数量方法吧。我们用的还是 HSSFWorkbook 类提供的 getNumberOfSheets()方法。

1️⃣定义一个工具类

    /**     * 获取Excel sheet页的数量     */    public static int getSheetCount(String path) throws IOException {        FileInputStream fileInput = new FileInputStream(path);        POIFSFileSystem fs = new POIFSFileSystem(fileInput);        HSSFWorkbook hs = new HSSFWorkbook(fs);        return hs.getNumberOfSheets();    }
复制代码

2️⃣main 函数测试

        为了省时间,我就不定义 testcase 了,直接 psvm 测试验证一下,具体的大家自行测试,毕竟就是一个 api 的使用。

    public static void main(String[] args) throws IOException {        System.out.println(EasyPoiUtils.getSheetCount("C:/Users/Administrator/Desktop/专业能力等级(职称)评审平台/菜单列表.xls"));    }
复制代码

3️⃣测试验证

         首先,我演示的 excel 文档,我共创建了 4 个 sheet 工作表。

        我们自行 main 函数,查看控制台输出打印结果,我们可以发现,结果输出为:4。

        经多次不同 sheet 数量读取,输出结果皆为一致。

... ...

        ok,以上就是我这期的全部内容啦,如果还想学习更多,可以看看我的往期热文推荐哦,不积跬步,无以至千里; 不积小流,无以成江海,一口吃不成一个大胖子,加油!咱们下期拜拜~~

文末🔥

        我是 bug 菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!


感谢认真读完我博客的铁子萌,在这里呢送给大家一句话,不管你是在职还是在读,绝对终身受用。

时刻警醒自己:

抱怨没有用,一切靠自己;

想要过更好的生活,那就要逼着自己变的更强,生活加油!!!


发布于: 刚刚阅读数: 4
用户头像

bug菌

关注

公众号 | 猿圈奇妙屋 2020-07-30 加入

CSDN/阿里云/51CTO博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者,全网粉丝合计10w+,硬核公众号「猿圈奇妙屋」,欢迎你的加入!免费领取海量资料。

评论

发布
暂无评论
Spring Boot如何获取Excel sheet页?_Spring Boot_bug菌_InfoQ写作社区