首页 > 编程语言 >读取Excel文件数据java方法

读取Excel文件数据java方法

时间:2023-03-15 22:36:40浏览次数:36  
标签:java 读取 int Excel cell add rowData row

/**
 * 读取Excel数据
 * @param filePath 文件路径
 * @param sheetName 工作表名称
 * @return 以List<List<String>>形式返回Excel中的数据
 * @throws IOException
 * @throws InvalidFormatException
 */
public static List<List<String>> readExcelData(String filePath, String sheetName) throws IOException, InvalidFormatException {
    List<List<String>> data = new ArrayList<>();
    // 创建工作簿
    Workbook workbook = WorkbookFactory.create(new File(filePath));
    // 获取工作表
    Sheet sheet = workbook.getSheet(sheetName);
    // 获取行数
    int rowCount = sheet.getPhysicalNumberOfRows();
    for (int i = 0; i < rowCount; i++) {
        Row row = sheet.getRow(i);
        if (row != null) {
            int columnCount = row.getLastCellNum();
            List<String> rowData = new ArrayList<>();
            for (int j = 0; j < columnCount; j++) {
                Cell cell = row.getCell(j);
                if (cell != null) {
                    // 根据单元格数据类型获取值
                    switch (cell.getCellType()) {
                        case STRING:
                            rowData.add(cell.getStringCellValue());
                            break;
                        case NUMERIC:
                            rowData.add(Double.toString(cell.getNumericCellValue()));
                            break;
                        case BOOLEAN:
                            rowData.add(Boolean.toString(cell.getBooleanCellValue()));
                            break;
                        case FORMULA:
                            rowData.add(cell.getCellFormula());
                            break;
                        default:
                            rowData.add("");
                    }
                } else {
                    rowData.add("");
                }
            }
            data.add(rowData);
        }
    }
    return data;
}

 

标签:java,读取,int,Excel,cell,add,rowData,row
From: https://www.cnblogs.com/JErryID/p/17220444.html

相关文章

  • Java Map集合
    Map接口成对的对象(两个对象)才能作为一个集合元素对象,一对才算一个,Key(主键):Value(值)Map的Key对象是不可重复的key对象(是具有唯一性的能唯一地代表某个value对象的......
  • Java虚拟机详解——JVM常见问题总结
    面试必问关键词:JVM垃圾回收、类加载机制。 先把本文的目录画一个思维导图:一、Java引用的四种状态:强引用:用的最广。我们平时写代码时,new一个Object存放在堆内存......
  • Java基本数据类型
    Java基本数据类型Java有数据类型分为两大类:内置数据类型引用数据类型内置数据类型Java一共八种数据类型:六种数字类型(四个整形、两个浮点性)一种字符类型、一种布尔型......
  • java类型转换方式
    java类型转换方式mapstruct并不好用,代码臃肿,性能高一点参考https://blog.csdn.net/WX5991/article/details/121936717......
  • 随笔分类里的JAVA一栏里面是有内容的!!!
    随笔分类里的JAVA一栏里面是有内容的!!!可能是网站有bug,没有显示出来,需要点击进去,然后在左栏就能看到有关JAVA的内容了。博客园在文件分栏应该这里有bug,比如点击最外层文件......
  • 数组模拟环形队列java(数据结构与算法)
    思路:背景队列有两种实现方式:1、数组,2、链表在数组实现队列时,有的教科书中只说了队列满的条件是(rear+1)%manSize=front这个公式真让人摸不着头脑原来:这是数组模拟环......
  • 3分钟了解Java中Stack,Queue,Deque常用方法
    stack常用语法booleanempty()测试堆栈是否为空。Objectpeek()查看堆栈顶部的对象,但不从堆栈中移除它。Objectpop()移除堆栈顶部的对象,并作为此函......
  • Java 关键字 transient
    前言最近在看HashMap源代码的时候,发现链表table数组采用了transient关键字,笔者当时感觉对transient关键字即陌生但又有似曾相识,所以花了一些时间简要的总结了下使......
  • 【学习日志】Java基本数据类型的自动装箱和拆箱
    //测试代码publicstaticvoidmain(String[]args){Integera=1;Integerb=2;Integerc=3;Integerd=3;Integ......
  • Java字符串基础练习题2(较难)
    ​生成验证码内容:可以是小写字母,也可以是大写字母,还可以是数字​规则: 长度为5 内容中是四位字母,1位数字。 其中数字只有1位,但是可以出现在任意的位置。publicstati......