Java项目中如何将Excel文件从数据库导入与导出

  介绍

本篇文章给大家分享的是有关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)异常
  */公共静态ListreadXls (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(考试);
  }
  }
  返回列表;
  }
  公共静态ListreadXlsForJS (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文件从数据库导入与导出