写点什么

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

  • 2023-09-15
    广东
  • 本文字数:2246 字

    阅读完需:约 7 分钟

在当今信息化时代,计算机技术已经深入到各个领域,而程序设计则成为推动信息化建设的关键技术之一。在众多领域中,学生信息管理系统无疑是其中一个重要的应用。


本文将从学生信息管理系统的开发入手,探讨开如何高效且保证质量的完成开发。假设有一个学生信息管理系统,需要从 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/74CZO

用户头像

飞算云智官方账号 2021-08-10 加入

想了解更多产品内容,欢迎关注微信公众号:飞算SoFlu软件机器人 免费试用申请:http://feisuanyz.mikecrm.com/9dW4GeZ

评论

发布
暂无评论
程序设计之——手把手教你如何从Excel文件中读取学生信息_SoFlu软件机器人_InfoQ写作社区