Java如何计算excel表格中有多少人

使用jxl读取excel表格后如何计算表格中有多少人并输入到swing表格中

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ExcelUtils {
  
  public static int countRows(File file) throws Exception {
    Workbook workbook = Workbook.getWorkbook(file);
    Sheet sheet = workbook.getSheet(0); // 假设数据在第一个sheet中
    int rows = sheet.getRows();
    int count = 0;
    for (int i = 1; i < rows; i++) { // 假设第一行是表头
      Cell[] row = sheet.getRow(i);
      if (row[0].getContents().trim().length() > 0) {
        count++;
      }
    }
    workbook.close();
    return count;
  }
  
  public static List<String[]> readExcel(File file) throws Exception {
    List<String[]> list = new ArrayList<>();
    Workbook workbook = Workbook.getWorkbook(file);
    Sheet sheet = workbook.getSheet(0); // 假设数据在第一个sheet中
    int rows = sheet.getRows();
    for (int i = 1; i < rows; i++) { // 假设第一行是表头
      Cell[] row = sheet.getRow(i);
      if (row[0].getContents().trim().length() > 0) {
        String[] data = new String[row.length];
        for (int j = 0; j < row.length; j++) {
          data[j] = row[j].getContents();
        }
        list.add(data);
      }
    }
    workbook.close();
    return list;
  }
  
}
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/269983
  • 你也可以参考下这篇文章:使用jxl读取excel文件
  • 除此之外, 这篇博客: 带你用Java jxl方式生成Excel中的   部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 参数解释:(名称,工作表索引);下面代码这里0指第一个工作表,后面可以建立1,2,3...

    //创建一个Excel的工作表sheet
    WritableSheet sheet = workbook.createSheet("数据库表", 0);
    // 一种为bold加粗,一种为noBold不加粗。具体要设置其他样式可以点开WritableFont类参考
    WritableFont bold = new WritableFont(WritableFont.createFont("微软雅黑"), 12, WritableFont.BOLD);
    WritableFont noBold = new WritableFont(WritableFont.createFont("微软雅黑"), 12, WritableFont.NO_BOLD);
    // 设置一级标题,单元格样式控制对象
    WritableCellFormat titleFormate = new WritableCellFormat(bold);
    // 设置单元格中的内容水平方向居中、垂直方向居中、背景填充天蓝色、设置边框
    titleFormate.setAlignment(jxl.format.Alignment.CENTRE);
    titleFormate.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    titleFormate.setBackground(Colour.SKY_BLUE);
    titleFormate.setBorder(Border.ALL, BorderLineStyle.THIN);
    
    // 设置正文,单元格样式控制对象
    WritableCellFormat textFormat = new WritableCellFormat(noBold);
    // 单元格中的内容水平方向居中、垂直方向居中、设置边框
    textFormat.setAlignment(Alignment.CENTRE);
    textFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
    textFormat.setBorder(Border.ALL,BorderLineStyle.THIN);
    //冻结sheet工作表的第一行;可以冻结2.3.4...行
    sheet.getSettings().setVerticalFreeze(1);
    //冻结第二列
    sheet.getSettings().setHorizontalFreeze(2);
    // 设置行高,第一行,设置500高度;想要针对哪一行都可以设置
    sheet.setRowView(0,500);
    // 设置列宽
    sheet.setColumnView(0,24);
    sheet.setColumnView(1,20);
    sheet.setColumnView(2,20);
    sheet.setColumnView(3,20);
    sheet.setColumnView(4,20);
    sheet.setColumnView(5,20);
    sheet.setColumnView(6,20);
    sheet.setColumnView(7,20);
    sheet.setColumnView(8,20);
    //进行分组,1-3、4-6、7-9各为一组,并且默认是折叠true方式生成
    sheet.setRowGroup(0, 2, true);
    sheet.setRowGroup(3, 5, true);
    sheet.setRowGroup(6, 8, true);
    //参数依次表示:(0列,0行,填充数据:”表名称“,以titleFormate定义的样式创建)并加入工作表中
    Label label_00 = new Label(0,0, "表名称", titleFormate);
    sheet.addCell(label_00);
    
    //参数依次表示:(1列,0行,填充数据:”表名称“,以titleFormate定义的样式创建)并加入工作表中
    Label label_00 = new Label(0,0, "表名称", titleFormate);
    sheet.addCell(label_00);
    // 添加合并单元格,第一个参数是起始列,第二个参数是起始行,第三个参数是终止列,第四个参数是终止行
    //合并第一列和第二列的单元格
    sheet.mergeCells(0,0,1,0);