工作中需要后端来处理Excel文件的导入,需要检验Excel模板是否正确。故学习了HSSFWorkbook和WSSFWorkbook两种Excel处理器的使用方法
首先是验证的格式:
如图所示,我们现在要验证的就是当前上传的文件有符合A~H的标题格式。
需要注意的是,HSSFWorkbook和WSSFWorkbook是针对不同后缀文件来处理的。前者可以处理xls,后者可以处理xlsx。一些帖子说WSSFWorkbook也可以兼容处理xls,但我使用的版本不兼容。
以下是验证代码部分:
下面展示一些 内联代码片
。
public boolean parseExcel() throws IOException {/* 需要检验的文件路径 如果是需要文件做方法参数的话,可以用MultipartFile类型做形参* 然后String fileName = multipartFile.getOriginalFilename();即可*/String fileName="E://importTemplate (11).xls";HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(fileName));String[] columnName = {"A","B","C","D","E","F","G","H"};Sheet sheet = wb.getSheetAt(0);//提取第一个页面Row row = sheet.getRow(1);//提取第二行if (row != null && row.getLastCellNum() >= columnName.length) {//getLastCellNum就是获得多少列,在此例子中为8int lastCellNum = row.getLastCellNum();for (int idx = 0; idx < lastCellNum; idx++) {Cell cell = (row.getCell(idx));//这里cell是获取具体某行某列的内容if (cell.equals(null)) {return false;}String item = cell.toString();if (!columnName[idx].equals(item)) {return false;}}}return true;}
这样,就能够进行文档模板的检验了,如果是xlsx,将HSSFWorkbook 替换成WSSFWorkbook即可