`

java导入excel文件

 
阅读更多

private static String [] title_arr = null;
 static{
  titleMap.put("亡者姓名", 0);
  titleMap.put("亡者身份证号", 1);
  titleMap.put("性别", 2);
  titleMap.put("死亡年龄", 3);
  titleMap.put("死亡日期", 4);
  titleMap.put("户籍所在地址", 5);
  titleMap.put("申请人姓名", 6);
  titleMap.put("申请人性别", 7);
  titleMap.put("申请人身份证号码", 8);
  titleMap.put("与亡者关系", 9);
  titleMap.put("联系电话", 10);
  titleMap.put("领取金额", 11);
  titleMap.put("领取时间", 12);
  titleMap.put("经办人", 13);
  titleMap.put("审核人", 14);
  // 先判断表头是否正常
  title_arr = new String[]{"亡者姓名","亡者身份证号","性别","死亡年龄","死亡日期","户籍所在地址",
    "申请人姓名","申请人性别","申请人身份证号码","与亡者关系","联系电话","领取金额","领取时间","经办人","审核人"};
 }
 /**
  *  导入依赖jar
  *   1.jxl.jar
  *   2.commons-fileupload.jar
  *   3.poi-3.9-20121203.jar
  *   4.poi-ooxml-3.9-20121203.jar
  *   5.poi-ooxml-schemas-3.9-20121203.jar
  * @return
  */
 @Autowired
 private ApplicationRecordService applicationRecordService;
 public ActionForward importAllowanceReceiveInfo(ActionMapping mapping , ActionForm form , HttpServletRequest request, HttpServletResponse response) throws Exception{
  log.info("资金历史补录导入开始>>>>>>>>>>>>>>>>>>>>>>>>>>...");
  Long timeBegin = System.currentTimeMillis();
  String importtype = request.getParameter("importtype");
  int i_count = 0; // 累计错误行
  // 设置在线用户信息
  User user = UserSession.getUser(request);
  // 通过user获取各项区域信息
  AreaInfo areaInfo = Dicts.getAreaInfoByUserId(user.getId());
  Long importSuccessCount = new Long(0); 
  String importmsg = "";
  InputStream inxls = null;
  HSSFWorkbook wb = null;
  List<CellTable> tablelist = new ArrayList<CellTable>();
  CellTable cellTable = null;
  // 判断是否存在导入错误信息
  String importerror = "";
  try {
   AllowanceReceiveViewInfoForm recelveForm = (AllowanceReceiveViewInfoForm)form;
   FormFile file = recelveForm.getImportAllowanceReceiveInfoFile();
   if(file == null){
    importmsg = "文件导入错误,不存在导入文件。";
    request.setAttribute("importmsg", importmsg);
    return mapping.findForward("importSuccess");
   }
   // 文件输入流
   inxls = file.getInputStream();
   // 创建Excel对象
   wb = new HSSFWorkbook(inxls);
   // 获取第一个工作薄sheet
   HSSFSheet sheet = wb.getSheetAt(0);
   // 获取第一行
   HSSFRow row_1 = sheet.getRow(0);
   boolean title_true = true;
   for(int a = 0 ; a < title_arr.length ; a++){
    if(!title_arr[a].equalsIgnoreCase(row_1.getCell(a).getStringCellValue())){
     title_true = false;
     break;
    }
   }
   if(title_true){
    // 获取最后一行
    int i_num = sheet.getLastRowNum();
    if(i_num > 0){
     for(int i = 1 ; i <= i_num ; i++){
      HSSFRow row_ = sheet.getRow(i);
      if(row_ != null){
      String deadname = row_.getCell(0) == null?"":row_.getCell(0).getStringCellValue(); // 亡者姓名
      String deadidcard = row_.getCell(1) == null?"":row_.getCell(1).getStringCellValue();// 亡者身份证号
      String deadsex = row_.getCell(2) == null?"":row_.getCell(2).getStringCellValue();// 性别
      String deadage = null;
      try{
       deadage = row_.getCell(3) == null?"":row_.getCell(3).getStringCellValue();// 死亡年龄
      }catch(IllegalStateException ie){
       log.error("deadage Cannot get a text value from a numeric cell");
       deadage = "err";
      }
      String deaddate = null;
      try{
       deaddate = row_.getCell(4) == null?"":row_.getCell(4).getStringCellValue();// 死亡日期
      }catch(IllegalStateException ie){
       log.error("deaddate Cannot get a text value from a numeric cell");
       deaddate = "err";
      }
      String deadhomeAddress =  row_.getCell(5) == null?"":row_.getCell(5).getStringCellValue();// 户籍所在地址【非必填项】
      String appname = row_.getCell(6) == null?"":row_.getCell(6).getStringCellValue();// 申请人姓名
      String appsex = row_.getCell(7) == null?"":row_.getCell(7).getStringCellValue();// 申请人性别
      String appidcard = row_.getCell(8) == null?"":row_.getCell(8).getStringCellValue();// 申请人身份证号码
      String appnation = row_.getCell(9) == null?"":row_.getCell(9).getStringCellValue();// 与亡者关系
      String apptel = null;
      try{
       apptel = row_.getCell(10) == null?"":row_.getCell(10).getStringCellValue();// 联系电话
      }catch(IllegalStateException ie){
       log.error("apptel Cannot get a text value from a numeric cell");
       apptel = "err";
      }
      String receivemoney = null;
      try{
       receivemoney = row_.getCell(11) == null?"":row_.getCell(11).getStringCellValue();// 领取金额
      }catch(IllegalStateException ie){
       log.error("receivemoney Cannot get a text value from a numeric cell");
       receivemoney = "err";
      }
      String receivedate = null;
      try{
       receivedate = row_.getCell(12) == null?"":row_.getCell(12).getStringCellValue();// 领取时间
      }catch(IllegalStateException ie){
       log.error("receivedate Cannot get a text value from a numeric cell");
       receivedate = "err";
      }
      String operatename = row_.getCell(13) == null?"":row_.getCell(13).getStringCellValue();// 经办人
      String shname = row_.getCell(14) == null?"":row_.getCell(14).getStringCellValue();// 审核人
      
      
      if (Tools.isEmpty(deadname) && Tools.isEmpty(deadidcard)
        && Tools.isEmpty(deadsex) && Tools.isEmpty(deadage)
        && Tools.isEmpty(deaddate) && Tools.isEmpty(appname)
        && Tools.isEmpty(appsex) && Tools.isEmpty(appidcard)
        && Tools.isEmpty(appnation) && Tools.isEmpty(apptel)
        && Tools.isEmpty(receivemoney) && Tools.isEmpty(receivedate)
        ) {
       continue;
      }
      //  验证必填项
      if(Tools.isEmpty(deadname)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("亡者姓名")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("亡者姓名")+1)+"列"+title_arr[titleMap.get("亡者姓名")]+"是必填项未填写。";
       i_count++;
      }
      if(Tools.isEmpty(deadidcard)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("亡者身份证号")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("亡者身份证号")+1)+"列"+title_arr[titleMap.get("亡者身份证号")]+"是必填项未填写。";
       i_count++;
      }
      if(!"".equals(IDCardValidate(deadidcard))){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("亡者身份证号")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("亡者身份证号")+1)+"列"+title_arr[titleMap.get("亡者身份证号")]+IDCardValidate(deadidcard);
       i_count++;
      }
      if(Tools.isEmpty(deadsex)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("性别")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("性别")+1)+"列"+title_arr[titleMap.get("性别")]+"是必填项未填写。";
       i_count++;
      }
      if(Tools.isEmpty(deadage)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("死亡年龄")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("死亡年龄")+1)+"列"+title_arr[titleMap.get("死亡年龄")]+"是必填项未填写。";
       i_count++;
      }
      if(Tools.isEmpty(deaddate)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("死亡日期")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("死亡日期")+1)+"列"+title_arr[titleMap.get("死亡日期")]+"是必填项未填写。";
       i_count++;
      }
      if(Tools.isEmpty(appname)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("申请人姓名")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("申请人姓名")+1)+"列"+title_arr[titleMap.get("申请人姓名")]+"是必填项未填写。";
       i_count++;
      }
      if(Tools.isEmpty(appsex)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("申请人性别")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("申请人性别")+1)+"列"+title_arr[titleMap.get("申请人性别")]+"是必填项未填写。";
       i_count++;
      }
      if(Tools.isEmpty(appidcard)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("申请人身份证号码")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("申请人身份证号码")+1)+"列"+title_arr[titleMap.get("申请人身份证号码")]+"是必填项未填写。";
       i_count++;
      }
      
      if(!"".equals(IDCardValidate(appidcard))){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("申请人身份证号码")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("申请人身份证号码")+1)+"列"+title_arr[titleMap.get("申请人身份证号码")]+IDCardValidate(appidcard);
       i_count++;
      }
      
      if(Tools.isEmpty(appnation)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("与亡者关系")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("与亡者关系")+1)+"列"+title_arr[titleMap.get("与亡者关系")]+"是必填项未填写。";
       i_count++;
      }
      if(Tools.isEmpty(apptel)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("联系电话")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("联系电话")+1)+"列"+title_arr[titleMap.get("联系电话")]+"是必填项未填写。";
       i_count++;
      }
      if(Tools.isEmpty(receivemoney)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("领取金额")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("领取金额")+1)+"列"+title_arr[titleMap.get("领取金额")]+"是必填项未填写。";
       i_count++;
      }
      if(Tools.isEmpty(receivedate)){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(titleMap.get("领取时间")+1);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("领取时间")+1)+"列"+title_arr[titleMap.get("领取时间")]+"是必填项未填写。";
       i_count++;
      }
      // 验证死亡人身份证号是否存在重复
      AidedPersonInfoQueryBean aidedPersonInfoBean = new AidedPersonInfoQueryBean();
      aidedPersonInfoBean.setIdCards(deadidcard);
      int idCardCount = applicationRecordService.idCardsCount(aidedPersonInfoBean);
      if(idCardCount > 0){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(2);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("亡者身份证号")+1)+"列已经存在相同的"+title_arr[titleMap.get("亡者身份证号")]+"。";
       i_count++;
      }
      // 验证死亡年龄格式
      Long deadAge = new Long(0);
      try{
       deadAge = Long.parseLong(deadage);
      }catch(NumberFormatException ne){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(4);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("死亡年龄")+1)+"列"+title_arr[titleMap.get("死亡年龄")]+"格式不正确。";
       i_count++;
      }
      // 验证死亡日期格式
      Date deadDate = null;
      try{
       deadDate = Tools.getDateByStr(deaddate, "yyyy-MM-dd");
      }catch(ParseException pe){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(5);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("死亡日期")+1)+"列"+title_arr[titleMap.get("死亡日期")]+"格式不正确。";
       i_count++;
      }
      // 验证领取金额格式
      Long sumAllowance = new Long(0);
      try{
       sumAllowance = Long.parseLong(receivemoney);
      }catch(NumberFormatException ne){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(12);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("领取金额")+1)+"列"+title_arr[titleMap.get("领取金额")]+"格式不正确。";
       i_count++;
      }
      // 验证领取日期格式
      Date receiveDate = null;
      try{
       receiveDate = Tools.getDateByStr(receivedate, "yyyy-MM-dd");
      }catch(ParseException pe){
       cellTable = new CellTable();
       cellTable.setRow_a(i);  // 存放行
       cellTable.setCell_b(13);  // 存放列
       cellTable.setType("wrong");
       tablelist.add(cellTable);
       importmsg = importmsg + "<br>第"+i+"行导入错误,第"+i+"行,第"+(titleMap.get("领取时间")+1)+"列"+title_arr[titleMap.get("领取时间")]+"格式不正确。";
       i_count++;
      }
      if(importtype != null && "2".equalsIgnoreCase(importtype)){// 阻止型导入
       // 正式导入数据
       try{
        importmsg = import_start(importmsg, user, areaInfo, i, deadname, deadsex, deadAge, deadidcard, deadDate, deadhomeAddress,
          appname, appsex, appnation, appidcard, apptel, sumAllowance, receiveDate , operatename , shname);
       
        // 不存在问题行和列
        for(int c = 0 ; c < title_arr.length ; c++){
         cellTable = new CellTable();
         cellTable.setRow_a(i);  // 存放行
         cellTable.setCell_b(c);  // 存放列
         cellTable.setType("right");
         tablelist.add(cellTable);
        }
       }catch(Exception e2){
        log.error("", e2.fillInStackTrace());
        importmsg = importmsg + "<br>第"+i+"行导入错误,未知错误。";
        continue;
       }
      }
     }
     }
     if(importtype != null && "1".equalsIgnoreCase(importtype)){ // 提示型导入
      ///////// 提示所有错误行,所有数据都不导入!如果数据全部正确,则全部导入
      if(i_count == 0){
       for(int i = 1 ; i <= i_num ; i++){
        HSSFRow row_ = sheet.getRow(i);
        String deadname = row_.getCell(0) == null?"":row_.getCell(0).getStringCellValue(); // 亡者姓名
        String deadidcard = row_.getCell(1) == null?"":row_.getCell(1).getStringCellValue();// 亡者身份证号
        String deadsex = row_.getCell(2) == null?"":row_.getCell(2).getStringCellValue();// 性别
        String deadage = row_.getCell(3) == null?"":row_.getCell(3).getStringCellValue();// 死亡年龄
        String deaddate = row_.getCell(4) == null?"":row_.getCell(4).getStringCellValue();// 死亡日期
        String deadhomeAddress =  row_.getCell(5) == null?"":row_.getCell(5).getStringCellValue();// 户籍所在地址【非必填项】
        String appname = row_.getCell(6) == null?"":row_.getCell(6).getStringCellValue();// 申请人姓名
        String appsex = row_.getCell(7) == null?"":row_.getCell(7).getStringCellValue();// 申请人性别
        String appidcard = row_.getCell(8) == null?"":row_.getCell(8).getStringCellValue();// 申请人身份证号码
        String appnation = row_.getCell(9) == null?"":row_.getCell(9).getStringCellValue();// 与亡者关系
        String apptel = row_.getCell(10) == null?"":row_.getCell(10).getStringCellValue();// 联系电话
        String receivemoney = row_.getCell(11) == null?"":row_.getCell(11).getStringCellValue();// 领取金额
        String receivedate = row_.getCell(12) == null?"":row_.getCell(12).getStringCellValue();// 领取时间
        
        String operatename = row_.getCell(13) == null?"":row_.getCell(13).getStringCellValue();// 经办人
        String shname = row_.getCell(14) == null?"":row_.getCell(14).getStringCellValue();// 审核人
        
        if (Tools.isEmpty(deadname) && Tools.isEmpty(deadidcard)
          && Tools.isEmpty(deadsex) && Tools.isEmpty(deadage)
          && Tools.isEmpty(deaddate) && Tools.isEmpty(appname)
          && Tools.isEmpty(appsex) && Tools.isEmpty(appidcard)
          && Tools.isEmpty(appnation) && Tools.isEmpty(apptel)
          && Tools.isEmpty(receivemoney) && Tools.isEmpty(receivedate)
          ) {
         continue;
        }
        
        try{
         import_start(importmsg, user, areaInfo, i, deadname, deadsex, new Long(deadage), deadidcard, Tools.getDateByStr(deaddate, "yyyy-MM-dd"), deadhomeAddress,
           appname, appsex, appnation, appidcard, apptel, new Long(receivemoney), Tools.getDateByStr(receivedate, "yyyy-MM-dd") , operatename , shname);
         importSuccessCount ++;
         // 不存在问题行和列
         for(int c = 0 ; c < title_arr.length ; c++){
          cellTable = new CellTable();
          cellTable.setRow_a(i);  // 存放行
          cellTable.setCell_b(c);  // 存放列
          cellTable.setType("right");
          tablelist.add(cellTable);
         }
        }catch(Exception e2){
         log.error("", e2.fillInStackTrace());
         importmsg = importmsg + "<br>第"+i+"行导入错误,未知错误。";
         continue;
        }
       }
      }
     }
    }else{
     importmsg = "无任何导入的数据。";
    }
   }else{
    importmsg = "模板文件内容格式不正确,请勿修改模板格式。谢谢!";
   }
   
   if(importtype != null && "1".equalsIgnoreCase(importtype)){
    if(i_count > 0){
     importmsg = importmsg + "<br>由于本次导入存在错误数据,本次导入全部终止!";
     importerror = "importerror";
    }else{
     importmsg = importmsg+"<br>导入成功。本次共导入"+importSuccessCount+"条。";
    }
   }
  } catch (Exception e) {
   importmsg = "文件导入错误,未知错误。";
   e.printStackTrace();
  }finally{
   if(inxls != null){
    inxls.close();
   }
  }
  Long timeEnd = System.currentTimeMillis();
  log.info("资金历史补录导入结束>>>>>>>>>>>>>>>>>>>>>>>>>>...");
  log.info("#######导入结束!########,用时:" + (timeEnd - timeBegin ) + "s");
  retExcel(request, user, tablelist, wb);
  request.setAttribute("importerror", importerror);
  request.setAttribute("importmsg", importmsg);
  return mapping.findForward("importSuccess");
 }

 

/***
  * 回写导入模板Excel到服务器上
  * @date Sep 18, 2013 4:42:32 PM
  * @param request
  * @param user
  * @param tablelist
  * @param wb
  * @throws Exception
  */
 private void retExcel(HttpServletRequest request , User user , List<CellTable> tablelist , HSSFWorkbook wb) throws Exception{
  //////////////////////回写文件到服务器 ///////////////////////////////////////
  FileOutputStream fileOutSave = null;
  String webRootPath = request.getSession().getServletContext().getRealPath("");
  String saveFilePath = "";
  try{
   if(System.getProperties().getProperty("os.name").toLowerCase().contains("windows")){
    saveFilePath = webRootPath + "\\tempFiles\\money_receive_history_temp"+user.getId()+".xls";
   }else{
    saveFilePath = webRootPath + File.separator + "tempFiles/money_receive_history_temp"+user.getId()+".xls";
   }
   fileOutSave = new FileOutputStream(saveFilePath);
   // ################################# //
   HSSFSheet childSheet = wb.getSheetAt(0);// 读取第一个Sheet  
   HSSFCellStyle setBorder = wb.createCellStyle();
   setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); // 填充单元格 
   setBorder.setFillForegroundColor(HSSFColor.RED.index); //红色 错误的
   HSSFCellStyle whiteStyle = wb.createCellStyle();
   whiteStyle.setFillPattern(HSSFCellStyle.NO_FILL); // 填充单元格 
   whiteStyle.setFillForegroundColor(HSSFColor.WHITE.index);  //白色 正确的
   // -----------------处理错误行,和正确行,标注红色和白色处理---------------- //
   for(int b = 0 ; b < tablelist.size() ; b++){
    CellTable c_table = (CellTable)tablelist.get(b);
    if("wrong".equalsIgnoreCase(c_table.getType())){
     HSSFRow row = childSheet.getRow(c_table.getRow_a());// 获得行对象
     if(row != null){
      HSSFCell ctemp =row.getCell(c_table.getCell_b()-1);// 第i行第0列
      if(ctemp == null){
       ctemp = row.createCell(c_table.getCell_b()-1);
      }
      ctemp.setCellStyle(setBorder);
     }
    }else{
     HSSFRow row = childSheet.getRow(c_table.getRow_a());// 获得行对象
     if(row != null){
      HSSFCell ctemp =row.getCell(c_table.getCell_b());// 第i行第0列
      if(ctemp == null){
       ctemp = row.createCell(c_table.getCell_b());
      }
      ctemp.setCellStyle(whiteStyle);
     }
    }
   }
   //开始重新写入excel
   log.info("###########开始写入excel###############");
   wb.write(fileOutSave);
   log.info("###########写入excel完成###############");
  }catch(Exception e){
   log.info("文件回写失败!");
   e.printStackTrace();
  }finally{
   if(fileOutSave != null){
    fileOutSave.close();
   }
  }
 }

分享到:
评论

相关推荐

    java 导入Excel 文件,支持xls、xlsx、csv格式

    综上所述,Java导入Excel文件涉及的关键技术包括Apache POI库的使用,对HSSF和XSSF的理解,以及对CSV文件处理的技巧。通过熟练掌握这些知识,你可以编写出高效且健壮的文件导入程序,满足各种需求。

    Java导入excel文件

    在Java编程环境中,导入Excel文件是一项常见的任务,特别是在数据处理、数据分析或自动化测试等领域。本项目提供了一个完整的解决方案,帮助开发者实现这一功能。下面将详细解释这个Java项目中涉及的关键知识点,...

    Java导入excel文件的jar包

    在本例中,我们需要关注的焦点是“Java导入excel文件的jar包”,这涉及到Java与Excel交互的核心库——Apache POI。 Apache POI是一个流行的开源项目,它允许Java开发者创建、修改和显示Microsoft Office格式的文件...

    java 导入及判断的Excel 使用方法

    在Java编程中,处理Excel文件是一项常见的任务,无论是读取数据、写入数据还是进行复杂的分析,Excel都因其直观的格式和广泛的应用而备受青睐。本文将深入探讨Java中导入和判断Excel的使用方法,结合实例分析,帮助...

    Java 使用poi导入excel 并使用xml做数据验证

    导入数据的过程中,首先需要创建一个`Workbook`对象来代表Excel文件,然后通过`Sheet`对象来操作单个工作表,接着是`Row`和`Cell`对象来处理每一行和每一列的数据。使用POI读取Excel数据的基本步骤如下: 1. 加载...

    java代码实现Excel文件的导入和导出

    导入Excel文件通常涉及到读取单元格的数据。首先,我们需要创建一个`FileInputStream`对象来打开Excel文件,然后创建相应的`HSSFWorkbook`或`XSSFWorkbook`对象。接着,通过`Sheet`接口获取工作表,再通过`Row`接口...

    java导入excel文件.txt

    java实现页面导入excel文件,保存excel文件到数据库,有需要在页面上导入一个excel表的同学可以借鉴

    POI导入Excel并返回校验后的错误文件(原样)下载以及校验错误信息,同时加进度条

    POI导入Excel并返回校验后的错误文件(原样数据文件,并添加批注,注:由于批注只能加1000条,会在Excel后面添加一栏错误信息)下载以及页面展示校验错误信息,同时添加导入进度条,提供页面js和css代码,后端...

    java导入Excel文件(兼容2003和2007 2010)

    java导入Excel文件,兼容.xls和.xlsx版本,采用的是POI3.10,同时解决了org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException的异常问题。

    java Swing 导入导出Excel文件

    自定义的一个excel文件导入导出类,支持Excel2003到2010的格式。里面也有简单的配置文件的创建。

    java导入excel到数据库

    以上就是关于“Java导入Excel到数据库”的详细知识点,涵盖了文件路径配置、合并单元格处理、数据库连接、Excel操作和数据导入等多个方面。这个过程需要对Java、数据库操作以及Excel处理有深入理解,才能有效地完成...

    Java实现Excel导入导出

    Excel源代码,导入导出各种工具类 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-scratchpad 代码实例: String path = ""; byte[] bytes; vo.setCurrentPage(0); vo....

    java导入excel表格

    在Java编程中,导入Excel表格是一项常见的任务,特别是在数据处理、数据分析或系统集成等领域。Excel文件通常用于存储结构化数据,而Java作为一种强大的后端语言,提供了多种方式来读取和操作这些数据。本篇文章将...

    java实现excel导入数据库

    要完成这个过程,我们需要使用特定的库来读取Excel文件,并使用JDBC(Java Database Connectivity)来与MySQL数据库进行交互。下面将详细解释如何实现这个功能。 首先,我们需要引入两个关键的第三方库:Apache POI...

    java 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据

    java jxl 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据

    java_poi实现excel导入导出

    Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 ...在本文中,我们已经详细介绍了如何使用 Java POI 实现 Excel 导入导出功能,包括读取和写入 Excel 文件。

    java Excel工具类,导入导出Excel数据

    java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据,导出数据到Excel,Excel文件不存在会创建。 博客:https://blog.csdn.net/qq_37902949/article/details/81230640

    java读取excel数据导入数据库源码

    java读取excel数据导入数据库源码 java读取excel数据导入数据库源码

    利用java 导入Excel表格数据到mysql数据库里,源码,直接导入eclipse就可以运行

    - `java.io`包中的类,如`FileInputStream`用于读取Excel文件,`BufferedReader`或`BufferedInputStream`用于提高文件读取性能。 - `org.apache.poi.ss.usermodel`接口和类,如`Workbook`、`Sheet`、`Row`和`Cell`...

Global site tag (gtag.js) - Google Analytics