Java中灵活获取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例子:
代码执行:
将执行结果格式化一下,更直观。
我们只要能获取行列数据,在就可以根据自己的实际需要去实现自己的代码。
上一篇:
Python 安装包管理工具 pip
下一篇:
VSCODE(十)C++语言特有设置