java怎么通过判断文本框中的内容进行查询Excel表格中的数据写入swing表格中
你要分几步走
第一学会swing的textbox怎么用,一般文本框后面加一个button,学会JButton绑定事件
第二步学会解析excel,有很多工具包,比如poi,它一般就是按行和列遍历
第三步在上一步的遍历中,加入判断,可以是字符串包含、等于、也可以是正则表达式
easyexcel读取后写入到swing就可以吧
首先要先知道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);
}