文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-05-31 07:34

关注

本篇文章给大家分享的是有关Java项目中如何将Excel文件从数据库导入与导出,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

ExcellToObjectUtil 类

主要功能是讲Excel中的数据导入到数据库中,有几个注意点就是

一般Excel中第一行是字段名称,不需要导入,所以从第二行开始计算

每列的匹配要和对象的属性一样

import java.io.IOException;import java.text.DecimalFormat;import java.util.ArrayList;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.POIFSFileSystem;import com.forenms.exam.domain.ExamInfo;public class ExcellToObjectUtil {  //examId,realName,身份证,user_card,sex,没有字段,assessment_project,admission_number,seat_number     public static List<ExamInfo> readXls(POIFSFileSystem poifsFileSystem) throws IOException {//    InputStream is = new FileInputStream(filepath);    HSSFWorkbook hssfWorkbook = new HSSFWorkbook(poifsFileSystem);    ExamInfo exam = null;    List<ExamInfo> list = new ArrayList<ExamInfo>();    // 循环工作表Sheet    for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {      HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);      if (hssfSheet == null) {        continue;      }      // 循环行Row      for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {        HSSFRow hssfRow = hssfSheet.getRow(rowNum);        if (hssfRow == null) {          continue;        }        exam = new ExamInfo();        // 循环列Cell        HSSFCell examId = hssfRow.getCell(1);        if (examId == null) {          continue;        }        double id = Double.parseDouble(getValue(examId));        exam.setExamId((int)id);//        HSSFCell realName = hssfRow.getCell(2);//        if (realName == null) {//          continue;//        }//        exam.setRealName(getValue(realName));//        HSSFCell userCard = hssfRow.getCell(4);//        if (userCard == null) {//          continue;//        }//        //        exam.setUserCard(getValue(userCard));        HSSFCell admission_number = hssfRow.getCell(8);        if (admission_number == null) {          continue;        }        exam.setAdmission_number(getValue(admission_number));        HSSFCell seat_number = hssfRow.getCell(9);        if (seat_number == null) {          continue;        }        exam.setSeat_number(getValue(seat_number));        list.add(exam);      }    }    return list;  }  public static List<ExamInfo> readXlsForJS(POIFSFileSystem poifsFileSystem) throws IOException {//   InputStream is = new FileInputStream(filepath);   HSSFWorkbook hssfWorkbook = new HSSFWorkbook(poifsFileSystem);   ExamInfo exam = null;   List<ExamInfo> list = new ArrayList<ExamInfo>();   // 循环工作表Sheet   for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {     HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);     if (hssfSheet == null) {       continue;     }     // 循环行Row     for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {       HSSFRow hssfRow = hssfSheet.getRow(rowNum);       if (hssfRow == null) {         continue;       }       exam = new ExamInfo();       // 循环列Cell 准考证号       HSSFCell admission_number = hssfRow.getCell(0);       if (admission_number == null) {         continue;       }       exam.setAdmission_number(getValue(admission_number));       //读取身份证号       HSSFCell userCard= hssfRow.getCell(2);       if (userCard == null) {        continue;       }       exam.setUserCard(getValue(userCard));       //读取座位号       HSSFCell seat_number = hssfRow.getCell(3);       if (seat_number == null) {        continue;       }       exam.setSeat_number(getValue(seat_number));       //读取考场号       HSSFCell fRoomName = hssfRow.getCell(6);       if (fRoomName == null) {        continue;       }       exam.setfRoomName(getValue(fRoomName));       //读取开考时间       HSSFCell fBeginTime = hssfRow.getCell(8);       if (fBeginTime == null) {        continue;       }       exam.setfBeginTime(getValue(fBeginTime));       //读取结束时间       HSSFCell fEndTime = hssfRow.getCell(9);       if (fEndTime == null) {        continue;       }       exam.setfEndTime(getValue(fEndTime));       list.add(exam);     }   }   return list; }    private static String getValue(HSSFCell hssfCell) {    if (hssfCell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {      // 返回布尔类型的值      return String.valueOf(hssfCell.getBooleanCellValue());    } else if (hssfCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {      // 返回数值类型的值      DecimalFormat df = new DecimalFormat("0");       String strCell = df.format(hssfCell.getNumericCellValue());      return String.valueOf(strCell);    } else {      // 返回字符串类型的值      return String.valueOf(hssfCell.getStringCellValue());    }  }}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯