java初学者一直在努力用java来做一些小东西,让我们的工作变得简单,前几天老师要求从后台调出excal文件,每个班从中挑出自己班级学生名单,然后对比找出自己班级未在名单中的学生。这其实是很无趣的事情,所以想一劳永逸,在此分享一些源码:
架包是:jxl.jar 可以自行下载导入即可
在这里插入代码片
package test;
import jxl.*;
import jxl.read.biff.BiffException;
import java.io.*;
import java.util.regex.Pattern;
public class demo {
public static void main(String[] args) throws BiffException, IOException {
System.out.println("17网工班人员名单统计");
// 读取表格中第一个sheet表
String[] result1 = getSheet("报名列表");// 17网工成员导出
System.out.println("信息学院已学习青年大学习人员名单统计");
// 读取表格中第二个sheet表
String[] result2 = getSheet1("报名列表");// 成员导出信息学院
CompareResult(result1, result2);//对比两个表 并输出17网工班未填表人名单
}
public static String[] getSheet(String sh) throws BiffException,
IOException {
String[] result;
Workbook book = Workbook.getWorkbook(new File("17网工成员导出.xls"));// 放在java项目下的文件名
// 获得excel文件的sheet表
Sheet sheet = book.getSheet(sh);
int rows = sheet.getRows();// 行数
int cols = sheet.getColumns();// 列数
System.out.println("总列数:" + cols);
System.out.println("总行数:" + rows);
System.out.println("----------------------------");
result = new String[rows];
int i = 0;
// 循环读取数据
for (i = 1; i < rows; i++) {
result[i] = new String(sheet.getCell(0, i).getContents());// getCell(x,y)
// 第y行的第x列
}
return result;
}
public static String[] getSheet1(String sh) throws BiffException,
IOException {
String[] result;
Workbook book1 = Workbook.getWorkbook(new File("成员导出.xls"));
Sheet sheet = book1.getSheet(sh);
int rows1 = sheet.getRows();// 行数
int cols1 = sheet.getColumns();// 列数
System.out.println("总列数:" + cols1);
System.out.println("总行数:" + rows1);
System.out.println("----------------------------");
result = new String[rows1];
int i = 0;
// 循环读取数据
for (i = 1; i < rows1; i++) {
// getCell(x,y) 第y行的第x列
result[i] = new String(sheet.getCell(0, i).getContents());
}
return result;
}
public static void CompareResult(String[] result1, String[] result2) {
int count = 0;
System.out.println("17网工班未进行青年大学习人员名单:");
for (int i = 1; i < result1.length; i++) {
if (result1[i] != null) {
for (int j = 1; j < result2.length; j++) {
Pattern regex = Pattern.compile(result1[i]);
if(regex.matcher(result2[j]).find()==true){
count = 1;
} // true
// if (result1[i].equals(result2[j])) {
// count = 1;
// }
}
if (count == 0) {
System.out.println(result1[i]);
}
}
count = 0;
}
}
}