使用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;
}
}
参数解释:(名称,工作表索引);下面代码这里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);