java统计excel表格中的人数

Java如何统计excel表格最后两列的人数,并且没有相同的人数

要统计Excel表格中最后两列的人数,并且保证没有相同的人数,可以使用Java中的Apache POI库来读取Excel文件并实现该功能,举个栗子

import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ExcelReader {
    public static void main(String[] args) throws IOException {
        String filename = "test.xlsx"; // Excel文件名
        FileInputStream fis = new FileInputStream(filename);
        Workbook wb = WorkbookFactory.create(fis);
        Sheet sheet = wb.getSheetAt(0); // 获取第一个Sheet

        Set<String> lastTwoCols = new HashSet<>(); // 用来存储最后两列的人数
        for (Row row : sheet) {
            Cell cell1 = row.getCell(row.getLastCellNum() - 2); // 获取倒数第二列
            Cell cell2 = row.getCell(row.getLastCellNum() - 1); // 获取最后一列
            String value1 = cell1.getStringCellValue().trim(); // 获取单元格内容并去掉空格
            String value2 = cell2.getStringCellValue().trim(); // 获取单元格内容并去掉空格
            String lastTwo = value1 + "_" + value2; // 合并最后两列
            lastTwoCols.add(lastTwo); // 加入Set集合
        }

        int count = lastTwoCols.size(); // 统计不同的人数
        System.out.println("不同的人数:" + count);
    }
}
上述代码首先读取Excel文件,然后遍历第一个Sheet中的每一行,获取最后两列的内容,并将其合并成一个字符串,加入到一个Set集合中。由于Set集合的特点是不允许重复元素,因此最后Set集合的大小就是最后两列的不同人数。

回答不易,望采纳!😘

先解析出来不就知道有多少数据了么

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/242667
  • 这篇博客你也可以参考下:java实现excel表格导入数据库表,导入错误的数据展示
  • 除此之外, 这篇博客: java实现Excel表格的上传以及导入数据库中的 java实现Excel表格的上传以及导入数据库 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 首先要先知道Excel的有版本的差距,2003和2007,也就是后缀名不同,2003版本后缀名是xls,2007版本是xlsx,版本不同工作簿的创建方式不同,最好创建一个工具类方便使用
    1、工具类ExcelUtil

    /**
     * @parm 28607
     * @auther HS
     * @date 2020/8/19 15:57
     */
    public class ExcelUtil {
        public final static String excel2003=".xls";
        public final static String excel2007=".xlsx";
        public static Workbook getWorkbook(String filename,String descFile)throws Exception{
            Workbook wb=null;
            String str=filename.substring(filename.lastIndexOf("."));
            if(str.equals(excel2003)){
               wb= new HSSFWorkbook(new FileInputStream(descFile));
            }
            else if(str.equals(excel2007)){
                wb=new XSSFWorkbook(new FileInputStream(descFile));
            }
            else {
                throw new Exception("文件格式有误");
            }
            return wb;
        }
    }
    

    具体的实现方法:此处是以user的四行数据来测试

    List<User> list = new ArrayList<>();
    	//调用工具类,创建一个工作簿,filename是完整文件名,descFile是路径名加完整的文件名
        Workbook workbook= ExcelUtil.getWorkbook(filename, String.valueOf(descFile));
        //创建一个工作表sheet
        Sheet sheet=null;
        for(int i=0;i<workbook.getNumberOfSheets();i++){
        //获取每个sheet
        sheet =workbook.getSheetAt(i);
        //getPhysicalNumberOfRows获取有记录的行数,注意,此处获取的是有记录的条数,有标题的话自己控制其实位置
        for(int j=0;j<sheet.getPhysicalNumberOfRows();j++){
        	Row row=sheet.getRow(j);
            if(null!=row){
            //getLastCellNum获取最后一列
            User user=new User();
            for(int k=0;k<row.getLastCellNum();k++){
               if(null!=row.getCell(k)){
                    if(k==0) {
                       Cell cell = row.getCell(0);
                       cell.setCellType(CellType.STRING);
                       user.setUser_id(cell.getStringCellValue());
                    }
                   if(k==1) {
                     Cell cell = row.getCell(1);
                    user.setUser_name(cell.getStringCellValue().toString());
                    user.setUser_pass(cell.getStringCellValue().toString());
                  }
                   if(k==2) {
                      Cell cell = row.getCell(2);
                     user.setUser_nickname(cell.getStringCellValue().toString());
                  }
                   if(k==3) {
                       Cell cell = row.getCell(3);
                       user.setUser_avatar(cell.getStringCellValue().toString());
                 }
               }
             }
                list.add(user);
               }
              }
          }
    

    获取user后添加到数据库就可以了

     if(userDao.insertListUser(list)){
                        json.setData(list);
                        json.setMsg("上传成功");
                        json.setSuccess(true);
                    }
    

    在这里插入图片描述