Java中如何灵活获取excel中的数据

 更新时间:2023年07月19日 14:58:06   作者:一枝风  
这篇文章主要给大家介绍了关于Java中如何灵活获取excel中的数据,在日常工作中我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,需要的朋友可以参考下

在java当中获取excel数据,获取每一列数据、每一行数据

在这里例子是将每一行数据获取出来,并带着表头数据返回。

代码:

具体实现逻辑在代码注释当中可以参见。

public static List<Map<String,Object>> test1() throws Exception{
        File file = new File("C:/Users/luo_a/Desktop/数据测试.xlsx");
        if (!file.exists()){
            throw new Exception("文件不存在!");
        }
        InputStream in = new FileInputStream(file);
        // 读取整个Excel
        XSSFWorkbook sheets = new XSSFWorkbook(in);
        // 获取第一个表单Sheet
        XSSFSheet sheetAt = sheets.getSheetAt(0);
        //默认第一行为标题行,i = 0
        XSSFRow titleRow = sheetAt.getRow(0);
        List<Map<String,Object>> mapList = new ArrayList<>();
        // 循环获取每一行数据
        for (int i = 1; i < sheetAt.getPhysicalNumberOfRows(); i++) {
            XSSFRow row = sheetAt.getRow(i);
            // 读取每一列内容
            Map<String,Object> map = new HashMap<>();
            for (int index = 0; index < row.getPhysicalNumberOfCells(); index++) {
                XSSFCell titleCell = titleRow.getCell(index);
                XSSFCell cell = row.getCell(index);
                cell.setCellType(CellType.STRING);
                if (cell.getStringCellValue().equals("")) {
                    continue;
                }
                //表头数据
                String titleName = titleCell.getStringCellValue();
                //单元格内容
                String valueName = cell.getStringCellValue();
                //每一行的数据
                map.put(titleName,valueName);
            }
            mapList.add(map);
        }
        System.out.println(JSON.toJSONString(mapList));
        return mapList;
    }

excel例子:

代码执行:

  将执行结果格式化一下,更直观。

 我们只要能获取行列数据,在就可以根据自己的实际需要去实现自己的代码。

总结

到此这篇关于Java中如何灵活获取excel中数据的文章就介绍到这了,更多相关Java获取excel数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在Java的Spring框架中配置Quartz的教程

    在Java的Spring框架中配置Quartz的教程

    这篇文章主要介绍了在Java的Spring框架中配置Quartz的教程,Quartz是一款高人气的开源作业调度框架,需要的朋友可以参考下
    2016-03-03
  • Java经典面试题最全汇总208道(一)

    Java经典面试题最全汇总208道(一)

    这篇文章主要介绍了Java经典面试题最全汇总208道(一),本文章内容详细,该模块分为了六个部分,本次为第一部分,需要的朋友可以参考下
    2023-01-01
  • javax.management.InvalidApplicationException的问题解决

    javax.management.InvalidApplicationException的问题解决

    javax.management.InvalidApplicationException是与Java Management Extensions (JMX) API相关的一个常见异常,本文主要介绍了javax.management.InvalidApplicationException的问题解决,感兴趣的可以了解一下
    2024-08-08
  • Java的无参构造函数用法实例分析

    Java的无参构造函数用法实例分析

    这篇文章主要介绍了Java的无参构造函数用法,结合实例形式分析了java无参构造函数基本原理、用法及相关操作注意事项,需要的朋友可以参考下
    2019-09-09
  • Windows下Java调用OCR进行图片识别

    Windows下Java调用OCR进行图片识别

    这篇文章主要为大家详细介绍了Windows下Java调用OCR进行图片识别,通过Tesseract-OCR对图片进行识别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • Hyperlane 文件分块上传服务端的解决方案

    Hyperlane 文件分块上传服务端的解决方案

    在现代Web应用中,文件上传是一个核心功能,尤其是对于大文件,传统的上传方式常常因网络中断或超时而失败,为了解决这一痛点,我们推出了基于 Hyperlane 的文件分块上传服务端代码,为开发者提供了一个高效、可靠的大文件上传解决方案,感兴趣的朋友一起看看吧
    2025-04-04
  • mybatis-plus @DS实现动态切换数据源原理

    mybatis-plus @DS实现动态切换数据源原理

    本文主要介绍了mybatis-plus @DS实现动态切换数据源原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • spring boot教程之建立第一个HelloWorld

    spring boot教程之建立第一个HelloWorld

    这篇文章主要介绍了spring boot教程之建立第一个HelloWorld的相关资料,需要的朋友可以参考下
    2022-08-08
  • JAVA重复调用接口导致数据不一致的问题解决

    JAVA重复调用接口导致数据不一致的问题解决

    在使用JAVA进行开发时,我们经常会遇到要调用接口来获取数据的情况,本文主要介绍了JAVA重复调用接口导致数据不一致的问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • @Scheduled fixedDelayString 加载properties配置方式

    @Scheduled fixedDelayString 加载properties配置方式

    这篇文章主要介绍了@Scheduled fixedDelayString 加载properties配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10

最新评论