通过Java代码读取excle里面的内容加载到mysql中,使用mybatis框架

在这里插入图片描述
添加链接描述
在这里插入图片描述
在这里插入图片描述
通过Java代码读取excle里面的内容加载到mysql中,使用mybatis框架

	public static void main(String[] args) {
		try {
			import2016EnrollPlan();
		}catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static void import2016EnrollPlan() throws Exception{
		InputStream ip = new FileInputStream("G:\\实验的excle2\\34-47_2016年本科一批A类录取院校(专业)录取新生分数分布统计(文史类).xlsx");
		Workbook workbook = new XSSFWorkbook(ip);
		Sheet sheet = workbook.getSheetAt(0);
		workbook.close();
		//定义变量
		String collegeName = null;
		//String collegeCode = null;
		CollegeSpeciality collegeSpeciality =null;
		String cellContent = null;
		//String specialityname = null;
		//读取一行分析
		for(int index= 1 ;index<=sheet.getLastRowNum();index++ ) {
			Row row = sheet.getRow(index);
			System.out.println("显示:"+index);
			//第三行可能出现的情况:1、学校 2、专业 3、空行
				Cell cell = row.getCell(4);
				cell.setCellType(CellType.STRING);
					collegeSpeciality = new CollegeSpeciality();
					collegeSpeciality.setProvince("天津");
					collegeSpeciality.setYear_no(2016);
					collegeSpeciality.setScience_art("文史类");
					collegeSpeciality.setBatches("本科一批A类");
					cellContent = cell.getStringCellValue();
					if (cellContent.indexOf(":")>0) {
						//这行基本就是大学行了
//						将院校写到数据库中
						cell = row.getCell(1);
						cell.setCellType(CellType.STRING);
						cellContent = cell.getStringCellValue().replace(" ","");
						collegeName = cellContent;
						//collegeSpeciality.setCollege_name(collegeName);
						//CareerDataOper.insertCollegeSpecaility(collegeSpeciality);
					}else {
						//处理专业
						collegeSpeciality.setCollege_name(collegeName);
						cell = row.getCell(1);
						cell.setCellType(CellType.STRING);
						cellContent = cell.getStringCellValue().replace(" ","");
		    			String pattern = "^[0-9]{0}";
		    			Pattern p=Pattern.compile(pattern);
		    			Matcher m=p.matcher(cellContent);
						//specialityname = cellContent;
		    			if (m.find()) {
		    				if (cellContent.indexOf(")")>0) {
								collegeSpeciality.setSpeciality_name(cellContent.substring(m.end(0),cellContent.indexOf("(")));
								collegeSpeciality.setRemark(cellContent.substring(cellContent.indexOf("(")));
							}else {
								collegeSpeciality.setSpeciality_name(cellContent.substring(m.end()));
							}
						}
						
						
						//将计划人数人数写到数据库中
						cell = row.getCell(2);
						cell.setCellType(CellType.STRING);
		    			cellContent = cell.getStringCellValue();
		    			pattern = "^[0-9]{0}";
		    			p=Pattern.compile(pattern);
		    			m=p.matcher(cellContent);
		    			if(m.find()){
		    				collegeSpeciality.setPlanned_enrollment(Integer.valueOf(cellContent));
		    			}else{
		    				throw new Exception("计划人数解析错误:"+cellContent);
		    			}
						//将录取人数写到数据库中
		    			cell = row.getCell(3);
						cell.setCellType(CellType.STRING);
		    			cellContent = cell.getStringCellValue();
		    			pattern = "^[0-9]{0}";
		    			p=Pattern.compile(pattern);
		    			m=p.matcher(cellContent);
		    			if(m.find()){
		    				collegeSpeciality.setEnrollment(Integer.valueOf(cellContent));
		    			}else{
		    				throw new Exception("录取人数解析错误:"+cellContent);
		    			}
		    			
		    			//检测第四列是否有数据
						cell = row.getCell(4);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("645"));
							}
						//检测第五列是否有数据
						cell = row.getCell(5);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("635"));
							}
						//检测第六列是否有数据
						cell = row.getCell(6);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("625"));
							}
						//检测第七列是否有数据
						cell = row.getCell(7);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("615"));
							}
						//检测第八列是否有数据
						cell = row.getCell(8);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("605"));
							}
						
						//检测第九列是否有数据
						cell = row.getCell(9);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("595"));
							}
						//检测第十列是否有数据
						cell = row.getCell(10);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("585"));
							}
						//检测第十一列是否有数据
						cell = row.getCell(11);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("575"));
							}
						//检测第十二列是否有数据
						cell = row.getCell(12);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("565"));
							}
						//检测第十三列是否有数据
						cell = row.getCell(13);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("555"));
							}
						//检测第十四列是否有数据
						cell = row.getCell(14);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("545"));
							}
						//检测第十五列是否有数据
						cell = row.getCell(15);
						cell.setCellType(CellType.STRING);
						cellContent  = cell.getStringCellValue().replace(" ","");
						pattern = "^[0-9]{1}";
						p=Pattern.compile(pattern);
						m=p.matcher(cellContent);
						if (m.find()) {
							collegeSpeciality.setLowest_score(Integer.valueOf("536"));
							}
						//通过省份,学校,专业,年份查询是否有此专业
						List<CollegeSpeciality> listCollegeSpeciality = CareerDataOper.findCollegeSpecialityByAAA(
							collegeSpeciality.getProvince(),collegeSpeciality.getCollege_name(),collegeSpeciality.getSpeciality_name(),
								collegeSpeciality.getYear_no(),collegeSpeciality.getRemark());
						if(listCollegeSpeciality==null||listCollegeSpeciality.size()<1){
							//刷新数据到数据库
			    			CareerDataOper.insertCollegeSpecaility(collegeSpeciality);
						}else{
							System.out.println("此条信息已存在");
							//throw new Exception("此条信息已存在");
						}
						if(collegeSpeciality.getSpeciality_name().length()>15)
							System.out.println(collegeSpeciality.getRemark());
					
						}	
			}
		}
	}


//这是实体类
package entity;

public class CollegeSpeciality {
	
	private Integer id;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	private String province;  //此条数据属于哪个省会
	private String college_name;//大学名称
	private String college_code;//此省的大学代码
	private String speciality_name;//专业名字
	private String speciality_code;
	private Integer year_no;
	private String science_art;
	private Integer planned_enrollment;//招生计划人数。
	private Integer enrollment;//录取人数
	private String tuition;//学费
	private String elective;//选考科目
	private String batches;//录取批次
	private String major_years;//专业学制 
	private Integer avg_score;
	private Integer one_score;
	private Integer one_rank;
	private Integer two_score;
	private Integer two_rank;
	private Integer three_score;
	private Integer three_rank;
	private Integer remain;
	private String remark;
	private Integer lowest_score;
	private Integer lowest_rank;
	private Integer avg_rank;
	private Integer highest_score;
	private Integer highest_rank;
	private Integer archive_highest_score;
	private Integer archive_lowest_score;
	private String foreign_language;
	private String major_level;
	private String in_majors;
	
	public String getMajor_level() {
		return major_level;
	}
	public void setMajor_level(String major_level) {
		this.major_level = major_level;
	}
	public String getIn_majors() {
		return in_majors;
	}
	public void setIn_majors(String in_majors) {
		this.in_majors = in_majors;
	}
	public String getProvince() {
		return province;
	}
	public void setProvince(String province) {
		this.province = province;
	}
	public String getCollege_name() {
		return college_name;
	}
	public void setCollege_name(String college_name) {
		this.college_name = college_name;
	}
	public String getCollege_code() {
		return college_code;
	}
	public void setCollege_code(String college_code) {
		this.college_code = college_code;
	}
	public String getSpeciality_name() {
		return speciality_name;
	}
	public void setSpeciality_name(String speciality_name) {
		this.speciality_name = speciality_name;
	}
	public String getSpeciality_code() {
		return speciality_code;
	}
	public void setSpeciality_code(String speciality_code) {
		this.speciality_code = speciality_code;
	}
	public Integer getYear_no() {
		return year_no;
	}
	public void setYear_no(Integer year_no) {
		this.year_no = year_no;
	}
	public String getScience_art() {
		return science_art;
	}
	public void setScience_art(String science_art) {
		this.science_art = science_art;
	}
	public Integer getPlanned_enrollment() {
		return planned_enrollment;
	}
	public void setPlanned_enrollment(Integer planned_enrollment) {
		this.planned_enrollment = planned_enrollment;
	}
	public Integer getEnrollment() {
		return enrollment;
	}
	public void setEnrollment(Integer enrollment) {
		this.enrollment = enrollment;
	}
	public String getTuition() {
		return tuition;
	}
	public void setTuition(String tuition) {
		this.tuition = tuition;
	}
	public String getElective() {
		return elective;
	}
	public void setElective(String elective) {
		this.elective = elective;
	}
	public String getBatches() {
		return batches;
	}
	public void setBatches(String batches) {
		this.batches = batches;
	}
	public String getMajor_years() {
		return major_years;
	}
	public void setMajor_years(String major_years) {
		this.major_years = major_years;
	}
	public Integer getAvg_score() {
		return avg_score;
	}
	public void setAvg_score(Integer avg_score) {
		this.avg_score = avg_score;
	}
	public Integer getOne_score() {
		return one_score;
	}
	public void setOne_score(Integer one_score) {
		this.one_score = one_score;
	}
	public Integer getOne_rank() {
		return one_rank;
	}
	public void setOne_rank(Integer one_rank) {
		this.one_rank = one_rank;
	}
	public Integer getTwo_score() {
		return two_score;
	}
	public void setTwo_score(Integer two_score) {
		this.two_score = two_score;
	}
	public Integer getTwo_rank() {
		return two_rank;
	}
	public void setTwo_rank(Integer two_rank) {
		this.two_rank = two_rank;
	}
	public Integer getThree_score() {
		return three_score;
	}
	public void setThree_score(Integer three_score) {
		this.three_score = three_score;
	}
	public Integer getThree_rank() {
		return three_rank;
	}
	public void setThree_rank(Integer three_rank) {
		this.three_rank = three_rank;
	}
	public Integer getRemain() {
		return remain;
	}
	public void setRemain(Integer remain) {
		this.remain = remain;
	}
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	public Integer getLowest_score() {
		return lowest_score;
	}
	public void setLowest_score(Integer lowest_score) {
		this.lowest_score = lowest_score;
	}
	public Integer getLowest_rank() {
		return lowest_rank;
	}
	public void setLowest_rank(Integer lowest_rank) {
		this.lowest_rank = lowest_rank;
	}
	public Integer getAvg_rank() {
		return avg_rank;
	}
	public void setAvg_rank(Integer avg_rank) {
		this.avg_rank = avg_rank;
	}
	public Integer getHighest_score() {
		return highest_score;
	}
	public void setHighest_score(Integer highest_score) {
		this.highest_score = highest_score;
	}
	public Integer getHighest_rank() {
		return highest_rank;
	}
	public void setHighest_rank(Integer highest_rank) {
		this.highest_rank = highest_rank;
	}
	public Integer getArchive_highest_score() {
		return archive_highest_score;
	}
	public void setArchive_highest_score(Integer archive_highest_score) {
		this.archive_highest_score = archive_highest_score;
	}
	public Integer getArchive_lowest_score() {
		return archive_lowest_score;
	}
	public void setArchive_lowest_score(Integer archive_lowest_score) {
		this.archive_lowest_score = archive_lowest_score;
	}
	public String getForeign_language() {
		return foreign_language;
	}
	public void setForeign_language(String foreign_language) {
		this.foreign_language = foreign_language;
	}
}

<insert id="insertCollegeSpecaility" parameterType="entity.CollegeSpeciality">
	  insert into t_college_speciality
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="province != null" >
        province,
      </if>
      <if test="college_name != null" >
        college_name,
      </if>
      <if test="college_code != null" >
        college_code,
      </if>
      <if test="speciality_name != null" >
        speciality_name,
      </if>
      <if test="speciality_code != null" >
        speciality_code,
      </if>
      <if test="year_no != null" >
        year_no,
      </if>
      <if test="science_art != null" >
        science_art,
      </if>
      <if test="planned_enrollment != null" >
        planned_enrollment,
      </if>
      <if test="enrollment != null" >
        enrollment,
      </if>
       <if test="tuition != null" >
        tuition,
      </if>
       <if test="elective != null" >
        elective,
      </if>
      <if test="major_years != null" >
        major_years,
      </if>
      <if test="avg_score != null" >
        avg_score,
      </if>
      <if test="avg_rank != null" >
        avg_rank,
      </if>
      <if test="one_score != null" >
        one_score,
      </if>
      <if test="one_rank != null" >
        one_rank,
      </if>
      <if test="two_score != null" >
        two_score,
      </if>
      <if test="two_rank != null" >
        two_rank,
      </if>
      <if test="three_score != null" >
        three_score,
      </if>
      <if test="three_rank!= null" >
        three_rank,
      </if>
      <if test="remain != null" >
        remain,
      </if>
      <if test="remark != null" >
        remark,
      </if>
      <if test="lowest_score != null" >
        lowest_score,
      </if>
      <if test="lowest_rank != null" >
        lowest_rank,
      </if>
     <if test="foreign_language !=null">
     	foreign_language,
     </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="province != null" >
        #{province},
      </if>
      <if test="college_name != null" >
        #{college_name},
      </if>
      <if test="college_code != null" >
        #{college_code},
      </if>
      <if test="speciality_name != null" >
        #{speciality_name},
      </if>
      <if test="speciality_code != null" >
        #{speciality_code},
      </if>
      <if test="year_no != null" >
        #{year_no},
      </if>
      <if test="science_art != null" >
        #{science_art},
      </if>
      <if test="planned_enrollment != null" >
        #{planned_enrollment},
      </if>
      <if test="enrollment != null" >
        #{enrollment},
      </if>
       <if test="tuition != null" >
        #{tuition},
      </if>
       <if test="elective != null" >
        #{elective},
      </if>
      <if test="major_years != null" >
        #{major_years},
      </if>
      <if test="avg_score != null" >
        #{avg_score},
      </if>
      <if test="avg_rank != null" >
        #{avg_rank},
      </if>
      <if test="one_score != null" >
        #{one_score},
      </if>
      <if test="one_rank != null" >
        #{one_rank},
      </if>
      <if test="two_score != null" >
        #{two_score},
      </if>
      <if test="two_rank != null" >
        #{two_rank},
      </if>
      <if test="three_score != null" >
        #{three_score},
      </if>
      <if test="three_rank!= null" >
        #{three_rank},
      </if>
      <if test="remain != null" >
        #{remain},
      </if>
      <if test="remark != null" >
        #{remark},
      </if>
      <if test="lowest_score != null" >
        #{lowest_score},
      </if>
      <if test="lowest_rank != null" >
        #{lowest_rank},
      </if>
      <if test="foreign_language != null">
        #{foreign_language}
      </if>
    </trim>
	</insert>
//实体类传入的位置
public static List<CollegeSpeciality> findCollegeSpecialityByAAA(String province,String collegeName,
			String speciality,Integer yearNo,String remark){
		SqlSession session = sqlSessionFactory.openSession();
		try {
			MajorMapper mapper = session.getMapper(MajorMapper.class);
			return mapper.findCollegeSpecialityByAAA(province,collegeName,speciality,yearNo,remark);
		}finally {
			session.close();
		}
	}
//MajorMapper接口中的方法
@Select("select * from t_college_speciality where province=#{province}"
			+ " and college_name=#{collegeName}"
			+ " and speciality_name=#{speciality}"
			+ " and remark=#{remark}"
			+ " and year_no=#{yearNo}")
	List<CollegeSpeciality> findCollegeSpecialityByAAA(@Param("province")String province,
			@Param("collegeName")String collegeName,
			@Param("speciality")String speciality, 
			@Param("yearNo")Integer yearNo,
			@Param("remark")String remark);
``






对于这张excle我的处理方式是:
1、通过代码先获取这个文件的地址
2、打开文件,一行一行的识别excle表格,然后通过getrow方法调用到对应的行
3、通过getCell方法识别对应的单元格:比如我这代码是通过识别第四列是否存在":"这个符号来判断这行是否为学校,如果存在我就把这行的第二列中的内容识别出来存到实体类:CollegeSpeciality中的college_name。
4、剩下来的行基本就是专业行了,然后通过substring方法我截取了"("前面的字存到实体类的变量中的speciality_name。剩下的数据我就不一一介绍了,基本也是差不多的方法。
5、接下来我通过mybatis框架,建立了sqlSessionFactory,然后打开sqlSession,接下来连接到MajorMapper接口还有MajorMapper.xml文件,将实体类的数据传到MajorMapper接口看是否存在重复数据,MajorMapper.xml文件中是sql语句,是我用来将数据插入到mysql的语句。从上往下的第三片代码是xml里的插入数据库的sql语句,第四片代码片是MajorMapper接口的判断方法,用来判断数据库是否存在重复数据。
6、然后就可以开始运行了。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
读取Excel文件数据并生成对象,你可以使用Apache POI库来实现。下面是一个简单的示例代码,可以读取Excel文件数据并将其转换为Java对象: ```java import java.io.FileInputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; 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.xssf.usermodel.XSSFWorkbook; public class ExcelToObjectConverter { public static void main(String[] args) { try { FileInputStream file = new FileInputStream("path/to/excel/file.xlsx"); XSSFWorkbook workbook = new XSSFWorkbook(file); Sheet sheet = workbook.getSheetAt(0); Iterator<Row> iterator = sheet.iterator(); List<MyObject> objects = new ArrayList<MyObject>(); while (iterator.hasNext()) { Row currentRow = iterator.next(); Iterator<Cell> cellIterator = currentRow.iterator(); MyObject object = new MyObject(); while (cellIterator.hasNext()) { Cell currentCell = cellIterator.next(); int columnIndex = currentCell.getColumnIndex(); switch (columnIndex) { case 0: object.setProperty1(currentCell.getStringCellValue()); break; case 1: object.setProperty2(currentCell.getNumericCellValue()); break; case 2: object.setProperty3(currentCell.getDateCellValue()); break; } } objects.add(object); } file.close(); // Do something with the objects... } catch (Exception e) { e.printStackTrace(); } } } ``` 在这个示例,我们首先打开Excel文件并读取第一个工作表。然后,我们遍历工作表的每一行,并将其转换为一个Java对象。对于每一行,我们遍历其的每一个单元格,并将单元格的值设置到Java对象的属性。最后,我们将生成的Java对象添加到一个列表,以便后续使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值