首页 > 编程语言 >程序设计之——手把手教你如何从Excel文件中读取学生信息

程序设计之——手把手教你如何从Excel文件中读取学生信息

时间:2023-09-15 17:02:37浏览次数:58  
标签:java 读取 dataList 手把手 Excel import List

在当今信息化时代,计算机技术已经深入到各个领域,而程序设计则成为推动信息化建设的关键技术之一。在众多领域中,学生信息管理系统无疑是其中一个重要的应用。本文将从学生信息管理系统的开发入手,探讨开如何高效且保证质量的完成开发。 假设有一个学生信息管理系统,需要从Excel文件中读取学生的姓名、年龄、成绩等数据,并将这些数据存储到系统中进行进一步的处理和管理。 具体来说,在数据导入/导出系统中调用这个函数,并传入Excel文件作为参数,就可以得到包含学生信息的结果。然后,可以对这个结果进行进一步的处理,比如将学生数据存储到数据库中或进行其他业务逻辑操作。 不同的定制化的数据处理需求场景可能有细微的细节差异,从头开始写又太繁琐,这时候: 1)想好大致的需求,询问FuncGPT 比如输入需求: 读取EXCEL数据,入参: File file,出参:List<Map<String, Object>> 获得完整的代码。 // 类名:ExcelDataReader // 函数名:readExcelData // 函数功能:读取Excel数据并返回List<Map<String, Object>>类型的结果 // POM依赖包: // <dependency> // <groupId>org.apache.poi</groupId> // <artifactId>poi</artifactId> // <version>4.1.2</version> // </dependency> // <dependency> // <groupId>org.apache.poi</groupId> // <artifactId>poi-ooxml</artifactId> // <version>4.1.2</version> // </dependency>

import org.apache.poi.ss.usermodel.*;

import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;

public class ExcelDataReader { /** * 读取Excel数据并返回List<Map<String, Object>>类型的结果 * @param file Excel文件 * @return Excel数据的List<Map<String, Object>>结果 * @throws IOException 当读取Excel文件出现错误时抛出IOException */ public static List<Map<String, Object>> readExcelData(File file) throws IOException { List<Map<String, Object>> dataList = new ArrayList<>(); // 创建存储Excel数据的List

    FileInputStream fis = new FileInputStream(file); // 创建文件输入流
    Workbook workbook = WorkbookFactory.create(fis); // 创建Workbook对象

    Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet
    int rowCount = sheet.getLastRowNum(); // 获取行数

    Row headerRow = sheet.getRow(0); // 获取标题行
    int columnCount = headerRow.getLastCellNum(); // 获取列数

    for (int i = 1; i <= rowCount; i++) { // 遍历每一行(跳过标题行)
        Row row = sheet.getRow(i);
        Map<String, Object> rowData = new HashMap<>();

        for (int j = 0; j < columnCount; j++) { // 遍历每一列
            Cell cell = row.getCell(j);
            String columnName = headerRow.getCell(j).getStringCellValue(); // 获取列名

            Object cellValue;
            switch (cell.getCellType()) { // 根据单元格类型获取单元格值
                case STRING:
                    cellValue = cell.getStringCellValue();
                    break;
                case NUMERIC:
                    cellValue = cell.getNumericCellValue();
                    break;
                case BOOLEAN:
                    cellValue = cell.getBooleanCellValue();
                    break;
                case FORMULA:
                    cellValue = cell.getCellFormula();
                    break;
                default:
                    cellValue = null;
            }

            rowData.put(columnName, cellValue); // 将列名和单元格值存入rowData
        }

        dataList.add(rowData); // 将rowData存入dataList
    }

    workbook.close(); // 关闭Workbook对象
    fis.close(); // 关闭文件输入流

    return dataList; // 返回Excel数据的结果
}

}

// 函数示例 // 读取Excel数据示例 // 入参:file,Excel文件 // 出参:dataList,Excel数据的List<Map<String, Object>>结果 // 调用示例: // File file = new File("data.xlsx"); // List<Map<String, Object>> dataList = ExcelDataReader.readExcelData(file); // System.out.println(dataList); // 输出结果:例如,Excel数据为: // | Name | Age | Grade | // |-------|-----|-------| // | Alice | 18 | A | // | Bob | 20 | B | // 则输出结果为:[{Name=Alice, Age=18, Grade=A}, {Name=Bob, Age=20, Grade=B}] // 表示Excel数据被封装为List<Map<String, Object>>的格式 2)根据FuncGPT的代码进行修改 由于EXCEL整体格式内容的话,会影响读取有效行或者有效列的真实数据,故需要对行和列进行相关有效校验。在原有代码的基础上,做一些修改: ①首先判断列,因为列的真实长度会影响到行的读取; ②读取第一行表头,如果遇到空白列,则认定有效列为上一个列的下标。 ③获取到有效列之后 去遍历每一行数数据,如果有整行为空则跳出循环,结束数据获取。 随着软件行业的快速发展,在提升软件效率的基础上,软件质量已经成为了至关重要的问题。一款高质量的软件不仅能够提高用户满意度,还能够降低维护和升级成本,为企业带来长期效益。免费使用链接:https://c.suo.nz/d5B3z

标签:java,读取,dataList,手把手,Excel,import,List
From: https://blog.51cto.com/u_15327851/7483733

相关文章

  • word安装(ppt、excel),以及word的常用设置
    一、安装word(ppt、excel)0、关闭电脑的所有杀毒软件等到激活的时候,注意断开网络!!!一般,白嫖的时候,激活都要记得断网,杀毒软件是从下载就得关闭了!1、卸载卸载:把电脑所有和办公office相关的软件卸载了,比如:word、ppt、excel、onenote、outlook等等[具体参考下图],注意还有wps也要一起卸载......
  • C#使用NPOI读取模板生成EXCEL
     C#使用NPOI读取模板生成EXCELstringcurrentDirectory=System.AppDomain.CurrentDomain.BaseDirectory;//读取Excel模板文件FileStreamfs=newFileStream(currentDirectory+"BoxPackinglist.xlsx",FileMode.Open,FileA......
  • excel查找内容是否在某一列中
    【1】excel查找内容是否在某一列中查询J553是否在$H$1:$H1006范围内,如找到显示行号,否则显示“未找到”=IFNA(MATCH(J553,$H$1:$H1006,0),"未找到") 翻译搜索复制......
  • excel如何快速下拉到底部?
    1、键盘操作:在键盘上按住Ctrl+箭头键(向下),可以快速的将表格定位到最底部。2、拖动滚动条:将鼠标定位到滚动条的箭头,进行拖动,可以实现快速下拉到最底部。3、利用End键:在键盘上按住End键,可以实现快速定位到最底部,只是不能控制定位到哪一行,只能定位到末尾行。......
  • excel禁止输入重复数据
    禁止输入重复的数据,我们利用的功能是数据验证首先选择需要设置的数据区域,然后点击【数据】功能组找到数据验证,将【允许】设置为【自定义】随后在下方将公式设置为=COUNTIF(A:A,A4)=1,在这里A4就是第一个姓名的位置......
  • python利用openpyxl实现利用excel每行数据填入对应模板批量生成excel
    一、openpyxl常见操作可以参考:https://blog.csdn.net/JunChen681/article/details/1260532061、openpyxl把excel分成了三层Workbook是对工作簿的抽象(工作簿,一个excel文件包含多个sheet。)Worksheet是对表格的抽象(工作表,一个workbook有多个,表名识别,如“sheet......
  • Excel的使用
    Excel的使用有一个表格,如下:fileindex1index2index3index4index5index6score距离112.5312.11129717211.7005963691远213.4911.61173702512.676969622近30.973.240.932.14138375712.8054388353近413.0411.99751643514.495......
  • 手把手搭建一个完整的javaweb项目(适合新手)
    手把手搭建一个完整的javaweb项目本案例使用Servlet+jsp制作,用MyEclipse和Mysql数据库进行搭建,详细介绍了搭建过程及知识点。 下载地址:http://download.csdn.net/detail/qq_23994787/9904842  点击下载主要功能有:1.用户注册2.用户登录3.用户列表展示4.用户信息修改......
  • yaml文件读取
    yaml文件 读取Yaml文件importyamlclassYamlUtil:def__init__(self,yaml_file):"""通过init方法把Yaml文件传入到这个类:paramyaml_file:"""self.yaml_file=yaml_file#读取Yaml文件defre......
  • SpringBoot打成jar运行后无法读取resources里的文件
    开发一个word替换功能时,因替换其中的内容功能需要word模版,就把word_replace_tpl.docx模版文件放到resources下在开发环境中通过下面方法能读取word_replace_tpl.docx文件,但是打成jar包在linux下运行后无法找到文件了Filefile=ResourceUtils.getFile(ResourceUtils.CL......