介绍
本篇文章给大家分享的是有关Java项目中如何将Excel文件从数据库导入与导出,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
<强> ExcellToObjectUtil类强>
主要功能是讲Excel中的数据导入到数据库中,有几个注意点就是
1。一般Excel中第一行是字段名称,不需要导入,所以从第二行开始计算
2。每列的匹配要和对象的属性一样
进口java.io.IOException; 进口java.text.DecimalFormat; 进口java.util.ArrayList; 进口并不知道; 进口org.apache.poi.hssf.usermodel.HSSFCell; 进口org.apache.poi.hssf.usermodel.HSSFRow; 进口org.apache.poi.hssf.usermodel.HSSFSheet; 进口org.apache.poi.hssf.usermodel.HSSFWorkbook; 进口org.apache.poi.poifs.filesystem.POIFSFileSystem; 进口com.forenms.exam.domain.ExamInfo; 公开课ExcellToObjectUtil {//examId realName,身份证,user_card,性爱,没有字段,assessment_project, admission_number seat_number/* * *读取xls文件内容 * * @return List对象 * @throws IOException *输入/输出(i/o)异常 */公共静态List readXls (POIFSFileSystem POIFSFileSystem)抛出IOException {//InputStream是=new FileInputStream (filepath); HSSFWorkbook HSSFWorkbook=new HSSFWorkbook (poifsFileSystem); ExamInfo考试=零; List 列表=new ArrayList ();//循环工作表板 for (int numSheet=0;numSheet & lt;hssfWorkbook.getNumberOfSheets ();numSheet + +) { HSSFSheet HSSFSheet=hssfWorkbook.getSheetAt (numSheet); 如果(hssfSheet==null) { 继续; }//循环行一行 for (int rowNum=1;rowNum & lt;=hssfSheet.getLastRowNum ();rowNum + +) { HSSFRow HSSFRow=hssfSheet.getRow (rowNum); 如果(hssfRow==null) { 继续; } 考试=new ExamInfo ();//循环列细胞 HSSFCell examId=hssfRow.getCell (1); 如果(examId==null) { 继续; } 双id=Double.parseDouble (getValue (examId)); exam.setExamId ((int) id);//HSSFCell realName=hssfRow.getCell (2);//如果(realName==null) {//继续;//}//exam.setRealName (getValue (realName));//HSSFCell userCard=hssfRow.getCell (4);//如果(userCard==null) {//继续;//}////exam.setUserCard (getValue (userCard)); HSSFCell admission_number=hssfRow.getCell (8); 如果(admission_number==null) { 继续; } exam.setAdmission_number (getValue (admission_number)); HSSFCell seat_number=hssfRow.getCell (9); 如果(seat_number==null) { 继续; } exam.setSeat_number (getValue (seat_number)); list.add(考试); } } 返回列表; } 公共静态List readXlsForJS (POIFSFileSystem POIFSFileSystem)抛出IOException {//InputStream是=new FileInputStream (filepath); HSSFWorkbook HSSFWorkbook=new HSSFWorkbook (poifsFileSystem); ExamInfo考试=零; List 列表=new ArrayList ();//循环工作表板 for (int numSheet=0;numSheet & lt;hssfWorkbook.getNumberOfSheets ();numSheet + +) { HSSFSheet HSSFSheet=hssfWorkbook.getSheetAt (numSheet); 如果(hssfSheet==null) { 继续; }//循环行一行 for (int rowNum=1;rowNum & lt;=hssfSheet.getLastRowNum ();rowNum + +) { HSSFRow HSSFRow=hssfSheet.getRow (rowNum); 如果(hssfRow==null) { 继续; } 考试=new ExamInfo ();//循环列细胞准考证号 HSSFCell admission_number=hssfRow.getCell (0); 如果(admission_number==null) { 继续; } exam.setAdmission_number (getValue (admission_number));//读取身份证号 HSSFCell userCard=hssfRow.getCell (2); 如果(userCard==null) { 继续; } exam.setUserCard (getValue (userCard));//读取座位号 HSSFCell seat_number=hssfRow.getCell (3); 如果(seat_number==null) { 继续; } exam.setSeat_number (getValue (seat_number));//读取考场号 HSSFCell fRoomName=hssfRow.getCell (6); 如果(fRoomName==null) { 继续; } exam.setfRoomName (getValue (fRoomName));//读取开考时间 HSSFCell fBeginTime=hssfRow.getCell (8); 如果(fBeginTime==null) { 继续; } exam.setfBeginTime (getValue (fBeginTime));//读取结束时间 HSSFCell fEndTime=hssfRow.getCell (9); 如果(fEndTime==null) { 继续; } exam.setfEndTime (getValue (fEndTime)); list.add(考试); } } 返回列表; }/* * *得到Excel表中的值 * * @param hssfCell * Excel中的每一个格子 * @return Excel中每一个格子中的值 */私有静态字符串getValue (HSSFCell HSSFCell) { 如果(hssfCell.getCellType ()==HSSFCell.CELL_TYPE_BOOLEAN) {//返回布尔类型的值 返回String.valueOf (hssfCell.getBooleanCellValue ()); }else if (hssfCell.getCellType ()==HSSFCell.CELL_TYPE_NUMERIC) {//返回数值类型的值 DecimalFormat df=new DecimalFormat (“0”); 字符串strCell=df.format (hssfCell.getNumericCellValue ()); 返回String.valueOf (strCell); 其他}{//返回字符串类型的值 返回String.valueOf (hssfCell.getStringCellValue ()); } } } Java项目中如何将Excel文件从数据库导入与导出