导入检验规格
This commit is contained in:
		| @@ -5,6 +5,7 @@ import com.xkrs.model.qo.QcSpecQoInsert; | |||||||
| import com.xkrs.model.qo.QcSpecQoUpdate; | import com.xkrs.model.qo.QcSpecQoUpdate; | ||||||
| import com.xkrs.service.QcSpecService; | import com.xkrs.service.QcSpecService; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
|  | import org.springframework.web.multipart.MultipartFile; | ||||||
|  |  | ||||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||||
|  |  | ||||||
| @@ -46,4 +47,20 @@ public class QcSpecController { | |||||||
|         return qcSpecService.queryQcSpec(varietyNo, craftItemNo, qcItemNo); |         return qcSpecService.queryQcSpec(varietyNo, craftItemNo, qcItemNo); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 导入检验规格 | ||||||
|  |      */ | ||||||
|  |     @PostMapping("/importSpecExcel") | ||||||
|  |     public String importSpecExcel(@RequestParam(value = "specExcel") MultipartFile specExcel) { | ||||||
|  |         return qcSpecService.importSpecExcel(specExcel); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 导出检验规格 | ||||||
|  |      */ | ||||||
|  |     @GetMapping("/exportSpecExcel") | ||||||
|  |     public String exportSpecExcel() { | ||||||
|  |         return qcSpecService.exportSpecExcel(); | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -18,7 +18,9 @@ import java.util.Optional; | |||||||
| @Component | @Component | ||||||
| public interface CraftItemDao extends JpaRepository<CraftItemEntity, Integer>, JpaSpecificationExecutor<CraftItemEntity> { | public interface CraftItemDao extends JpaRepository<CraftItemEntity, Integer>, JpaSpecificationExecutor<CraftItemEntity> { | ||||||
|  |  | ||||||
|     Optional<CraftItemEntity> findByCraftItemNo(String no); |     Optional<CraftItemEntity> findByCraftItemNo(String craftItemNo); | ||||||
|  |  | ||||||
|  |     Optional<CraftItemEntity> findByCraftItemName(String craftItemName); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 更新工艺项目名称 |      * 更新工艺项目名称 | ||||||
|   | |||||||
| @@ -17,7 +17,9 @@ import java.util.Optional; | |||||||
| @Component | @Component | ||||||
| public interface QcItemDao extends JpaRepository<QcItemEntity, Integer>, JpaSpecificationExecutor<QcItemEntity> { | public interface QcItemDao extends JpaRepository<QcItemEntity, Integer>, JpaSpecificationExecutor<QcItemEntity> { | ||||||
|  |  | ||||||
|     Optional<QcItemEntity> findByQcItemNo(String no); |     Optional<QcItemEntity> findByQcItemNo(String qcItemNo); | ||||||
|  |  | ||||||
|  |     Optional<QcItemEntity> findByQcItemName(String qcItemName); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 更新检验项目名称 |      * 更新检验项目名称 | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ import org.springframework.data.jpa.repository.Modifying; | |||||||
| import org.springframework.data.jpa.repository.Query; | import org.springframework.data.jpa.repository.Query; | ||||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||||
|  |  | ||||||
|  | import javax.transaction.Transactional; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| import java.util.Optional; | import java.util.Optional; | ||||||
| @@ -18,12 +19,21 @@ public interface QcSpecDao extends JpaRepository<QcSpecEntity, Integer>, JpaSpec | |||||||
|     Optional<QcSpecEntity> findExistsQcSpec(String varietyNo, String craftItemNo, String qcItemNo); |     Optional<QcSpecEntity> findExistsQcSpec(String varietyNo, String craftItemNo, String qcItemNo); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 更新检验规格 |      * 更新检验规格(Integer id) | ||||||
|      */ |      */ | ||||||
|  |     @Transactional(rollbackOn = Exception.class) | ||||||
|     @Modifying(clearAutomatically = true) |     @Modifying(clearAutomatically = true) | ||||||
|     @Query(value = "UPDATE qc_spec SET update_time = ?2, max = ?3, mean = ?4, min = ?5, unit = ?6, method = ?7, standard = ?8, remark = ?9 WHERE id = ?1", nativeQuery = true) |     @Query(value = "UPDATE qc_spec SET update_time = ?2, max = ?3, mean = ?4, min = ?5, unit = ?6, method = ?7, standard = ?8, remark = ?9 WHERE id = ?1", nativeQuery = true) | ||||||
|     void updateQcSpecById(Integer id, String updateTime, String max, String mean, String min, String unit, String method, String standard, String remark); |     void updateQcSpecById(Integer id, String updateTime, String max, String mean, String min, String unit, String method, String standard, String remark); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 更新检验规格(String varietyNo, String craftItemNo, String qcItemNo) | ||||||
|  |      */ | ||||||
|  |     @Transactional(rollbackOn = Exception.class) | ||||||
|  |     @Modifying(clearAutomatically = true) | ||||||
|  |     @Query(value = "UPDATE qc_spec SET update_time = ?4, max = ?5, mean = ?6, min = ?7, unit = ?8, method = ?9, standard = ?10, remark = ?11 WHERE variety_no = ?1 AND craft_item_no = ?2 AND qc_item_no = ?3", nativeQuery = true) | ||||||
|  |     void updateQcSpecByVCQ(String varietyNo, String craftItemNo, String qcItemNo, String updateTime, String max, String mean, String min, String unit, String method, String standard, String remark); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 查询检验规格 |      * 查询检验规格 | ||||||
|      */ |      */ | ||||||
|   | |||||||
							
								
								
									
										51
									
								
								src/main/java/com/xkrs/model/bean/ReadSpecHeadBean.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/main/java/com/xkrs/model/bean/ReadSpecHeadBean.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | |||||||
|  | package com.xkrs.model.bean; | ||||||
|  |  | ||||||
|  | public class ReadSpecHeadBean { | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 是否成功 | ||||||
|  |      */ | ||||||
|  |     private boolean success; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 错误消息 | ||||||
|  |      */ | ||||||
|  |     private String errorMessage; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 表头的有效列数 | ||||||
|  |      */ | ||||||
|  |     private long headCount; | ||||||
|  |  | ||||||
|  |     public ReadSpecHeadBean() { | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public boolean isSuccess() { | ||||||
|  |         return success; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setSuccess(boolean success) { | ||||||
|  |         this.success = success; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public String getErrorMessage() { | ||||||
|  |         return errorMessage; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setErrorMessage(String errorMessage) { | ||||||
|  |         this.errorMessage = errorMessage; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public long getHeadCount() { | ||||||
|  |         return headCount; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setHeadCount(long headCount) { | ||||||
|  |         this.headCount = headCount; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public String toString() { | ||||||
|  |         return "ReadSpecHeadBean{" + "success=" + success + ", errorMessage='" + errorMessage + '\'' + ", headCount=" + headCount + '}'; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -3,6 +3,7 @@ package com.xkrs.service; | |||||||
| import com.xkrs.model.qo.QcSpecQoDelete; | import com.xkrs.model.qo.QcSpecQoDelete; | ||||||
| import com.xkrs.model.qo.QcSpecQoInsert; | import com.xkrs.model.qo.QcSpecQoInsert; | ||||||
| import com.xkrs.model.qo.QcSpecQoUpdate; | import com.xkrs.model.qo.QcSpecQoUpdate; | ||||||
|  | import org.springframework.web.multipart.MultipartFile; | ||||||
|  |  | ||||||
| public interface QcSpecService { | public interface QcSpecService { | ||||||
|  |  | ||||||
| @@ -26,4 +27,14 @@ public interface QcSpecService { | |||||||
|      */ |      */ | ||||||
|     String queryQcSpec(String varietyNo, String craftItemNo, String qcItemNo); |     String queryQcSpec(String varietyNo, String craftItemNo, String qcItemNo); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 导入检验规格 | ||||||
|  |      */ | ||||||
|  |     String importSpecExcel(MultipartFile specExcel); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 导出检验规格 | ||||||
|  |      */ | ||||||
|  |     String exportSpecExcel(); | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -4,6 +4,7 @@ import com.xkrs.dao.CraftItemDao; | |||||||
| import com.xkrs.dao.QcItemDao; | import com.xkrs.dao.QcItemDao; | ||||||
| import com.xkrs.dao.QcSpecDao; | import com.xkrs.dao.QcSpecDao; | ||||||
| import com.xkrs.encapsulation.PromptMessageEnum; | import com.xkrs.encapsulation.PromptMessageEnum; | ||||||
|  | import com.xkrs.model.bean.ReadSpecHeadBean; | ||||||
| import com.xkrs.model.entity.CraftItemEntity; | import com.xkrs.model.entity.CraftItemEntity; | ||||||
| import com.xkrs.model.entity.QcItemEntity; | import com.xkrs.model.entity.QcItemEntity; | ||||||
| import com.xkrs.model.entity.QcSpecEntity; | import com.xkrs.model.entity.QcSpecEntity; | ||||||
| @@ -14,15 +15,18 @@ import com.xkrs.service.QcSpecService; | |||||||
| import com.xkrs.util.LocalDateUtils; | import com.xkrs.util.LocalDateUtils; | ||||||
| import com.xkrs.util.LocalStringUtils; | import com.xkrs.util.LocalStringUtils; | ||||||
| import org.apache.http.util.TextUtils; | import org.apache.http.util.TextUtils; | ||||||
|  | import org.apache.poi.hssf.usermodel.HSSFDateUtil; | ||||||
|  | import org.apache.poi.ss.usermodel.Cell; | ||||||
|  | import org.apache.poi.ss.usermodel.Row; | ||||||
|  | import org.apache.poi.xssf.usermodel.XSSFSheet; | ||||||
|  | import org.apache.poi.xssf.usermodel.XSSFWorkbook; | ||||||
| import org.springframework.context.i18n.LocaleContextHolder; | import org.springframework.context.i18n.LocaleContextHolder; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  | import org.springframework.web.multipart.MultipartFile; | ||||||
|  |  | ||||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||||
| import javax.transaction.Transactional; | import javax.transaction.Transactional; | ||||||
| import java.util.List; | import java.util.*; | ||||||
| import java.util.Locale; |  | ||||||
| import java.util.Map; |  | ||||||
| import java.util.Optional; |  | ||||||
|  |  | ||||||
| import static com.xkrs.encapsulation.OutputEncapsulation.outputEncapsulationObject; | import static com.xkrs.encapsulation.OutputEncapsulation.outputEncapsulationObject; | ||||||
|  |  | ||||||
| @@ -105,7 +109,6 @@ public class QcSpecServiceImpl implements QcSpecService { | |||||||
|     /** |     /** | ||||||
|      * 更新检验规格 |      * 更新检验规格 | ||||||
|      */ |      */ | ||||||
|     @Transactional(rollbackOn = Exception.class) |  | ||||||
|     @Override |     @Override | ||||||
|     public String updateQcSpec(QcSpecQoUpdate updateQo) { |     public String updateQcSpec(QcSpecQoUpdate updateQo) { | ||||||
|  |  | ||||||
| @@ -146,4 +149,186 @@ public class QcSpecServiceImpl implements QcSpecService { | |||||||
|         } |         } | ||||||
|         return outputEncapsulationObject(PromptMessageEnum.SUCCESS, resultList, locale); |         return outputEncapsulationObject(PromptMessageEnum.SUCCESS, resultList, locale); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 导入检验规格 | ||||||
|  |      */ | ||||||
|  |     @Override | ||||||
|  |     public String importSpecExcel(MultipartFile specExcel) { | ||||||
|  |         try { | ||||||
|  |             //1、读取测量规格数据表文件 | ||||||
|  |             XSSFWorkbook workbook = new XSSFWorkbook(specExcel.getInputStream()); | ||||||
|  |             //2、获取工作表对象 | ||||||
|  |             XSSFSheet sheet = workbook.getSheetAt(0); | ||||||
|  |             //3、获取行的迭代器 | ||||||
|  |             Iterator<Row> iterator = sheet.iterator(); | ||||||
|  |             long rowNum = 0; | ||||||
|  |             long colNum = -1; | ||||||
|  |             //4、表格数据容器 | ||||||
|  |             List<List<String>> sheetDataList = new ArrayList<>(); | ||||||
|  |             while (iterator.hasNext()) { | ||||||
|  |                 Row row = iterator.next(); | ||||||
|  |                 if (rowNum == 0) { | ||||||
|  |                     ReadSpecHeadBean readResult = readSpecHead(row); | ||||||
|  |                     if (readResult.isSuccess()) { | ||||||
|  |                         colNum = readResult.getHeadCount(); | ||||||
|  |                         rowNum++; | ||||||
|  |                         continue; | ||||||
|  |                     } | ||||||
|  |                     return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, readResult.getErrorMessage(), locale); | ||||||
|  |                 } | ||||||
|  |                 List<String> rowDataList = new ArrayList<>(); | ||||||
|  |                 for (int i = 0; i < colNum; i++) { | ||||||
|  |                     String value = getValue(row.getCell(i)); | ||||||
|  |                     if (i == 0) {//机种号数据直接添加 | ||||||
|  |                         if (TextUtils.isEmpty(value)) { | ||||||
|  |                             return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "第" + rowNum + "行机种号为空,请先编辑机种号!", locale); | ||||||
|  |                         } | ||||||
|  |                         rowDataList.add(value); | ||||||
|  |                     } else if (i == 1) {//工艺项目数据要添加对应的编号 | ||||||
|  |                         Optional<CraftItemEntity> craftItemOptional = craftItemDao.findByCraftItemName(value); | ||||||
|  |                         if (craftItemOptional.isEmpty()) { | ||||||
|  |                             return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "第" + rowNum + "行工艺项目(" + value + ")不存在,请先添加工艺项目!", locale); | ||||||
|  |                         } | ||||||
|  |                         rowDataList.add(craftItemOptional.get().getCraftItemNo()); | ||||||
|  |                     } else if (i == 2) {//检验项目数据要添加对应的编号 | ||||||
|  |                         Optional<QcItemEntity> qcItemOptional = qcItemDao.findByQcItemName(value); | ||||||
|  |                         if (qcItemOptional.isEmpty()) { | ||||||
|  |                             return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "第" + rowNum + "行检验项目(" + value + ")不存在,请先添加检验项目!", locale); | ||||||
|  |                         } | ||||||
|  |                         rowDataList.add(qcItemOptional.get().getQcItemNo()); | ||||||
|  |                     } else {//其他数据直接添加 | ||||||
|  |                         rowDataList.add(value); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 sheetDataList.add(rowDataList); | ||||||
|  |                 rowNum++; | ||||||
|  |             } | ||||||
|  |             //5、表格数据自重复检查 | ||||||
|  |             for (int i = 0; i < sheetDataList.size(); i++) { | ||||||
|  |                 List<String> rowDataList = sheetDataList.get(i); | ||||||
|  |                 List<Integer> appearIndexList = checkAppearIndex(sheetDataList, rowDataList.get(0), rowDataList.get(1), rowDataList.get(2)); | ||||||
|  |                 if (appearIndexList.size() == 0) { | ||||||
|  |                     return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "系统错误!", locale); | ||||||
|  |                 } | ||||||
|  |                 if (appearIndexList.size() > 1) { | ||||||
|  |                     StringBuilder response = new StringBuilder(); | ||||||
|  |                     response.append("测量规格表中:机种号、工艺项目、检验项目三项存在全部相同项,行数:"); | ||||||
|  |                     for (Integer appearIndex : appearIndexList) { | ||||||
|  |                         response.append("第").append(appearIndex + 2).append("行、"); | ||||||
|  |                     } | ||||||
|  |                     return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, response.toString(), locale); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             //6、表格的数据已经全部读取完成,并且自检通过,接下来遍历入库即可 | ||||||
|  |             int insertCount = 0; | ||||||
|  |             int updateCount = 0; | ||||||
|  |             for (List<String> rowDataList : sheetDataList) { | ||||||
|  |                 String varietyNo = rowDataList.get(0); | ||||||
|  |                 String craftItemNo = rowDataList.get(1); | ||||||
|  |                 String qcItemNo = rowDataList.get(2); | ||||||
|  |                 String max = rowDataList.get(3); | ||||||
|  |                 String min = rowDataList.get(4); | ||||||
|  |                 String method = rowDataList.get(5); | ||||||
|  |                 Optional<QcSpecEntity> existsQcSpecOptional = qcSpecDao.findExistsQcSpec(varietyNo, craftItemNo, qcItemNo); | ||||||
|  |                 if (existsQcSpecOptional.isPresent()) { | ||||||
|  |                     qcSpecDao.updateQcSpecByVCQ(LocalStringUtils.formatEmptyValue(varietyNo), LocalStringUtils.formatEmptyValue(craftItemNo), LocalStringUtils.formatEmptyValue(qcItemNo), LocalDateUtils.getCurrentSecond(), LocalStringUtils.formatEmptyValue(max), "", LocalStringUtils.formatEmptyValue(min), "", LocalStringUtils.formatEmptyValue(method), "", ""); | ||||||
|  |                     updateCount++; | ||||||
|  |                 } else { | ||||||
|  |                     QcSpecEntity entity = new QcSpecEntity(); | ||||||
|  |                     entity.setCreateTime(LocalDateUtils.getCurrentSecond()); | ||||||
|  |                     entity.setUpdateTime(""); | ||||||
|  |                     entity.setVarietyNo(LocalStringUtils.formatEmptyValue(varietyNo)); | ||||||
|  |                     entity.setCraftItemNo(LocalStringUtils.formatEmptyValue(craftItemNo)); | ||||||
|  |                     entity.setQcItemNo(LocalStringUtils.formatEmptyValue(qcItemNo)); | ||||||
|  |                     entity.setMax(LocalStringUtils.formatEmptyValue(max)); | ||||||
|  |                     entity.setMean(""); | ||||||
|  |                     entity.setMin(LocalStringUtils.formatEmptyValue(min)); | ||||||
|  |                     entity.setUnit(""); | ||||||
|  |                     entity.setMethod(LocalStringUtils.formatEmptyValue(method)); | ||||||
|  |                     entity.setStandard(""); | ||||||
|  |                     entity.setRemark(""); | ||||||
|  |                     qcSpecDao.save(entity); | ||||||
|  |                     insertCount++; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             StringBuilder response = new StringBuilder(); | ||||||
|  |             response.append("导入成功"); | ||||||
|  |             if (insertCount > 0) { | ||||||
|  |                 response.append(",新增").append(insertCount).append("条测量规格"); | ||||||
|  |             } | ||||||
|  |             if (updateCount > 0) { | ||||||
|  |                 response.append(",更新").append(updateCount).append("条测量规格"); | ||||||
|  |             } | ||||||
|  |             response.append("。"); | ||||||
|  |             return outputEncapsulationObject(PromptMessageEnum.SUCCESS, response.toString(), locale); | ||||||
|  |         } catch (Exception e) { | ||||||
|  |             e.printStackTrace(); | ||||||
|  |         } | ||||||
|  |         return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "测量规格数据导入失败!", locale); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private List<Integer> checkAppearIndex(List<List<String>> sheetDataList, String varietyNo, String craftItemNo, String qcItemNo) { | ||||||
|  |         List<Integer> appearIndexList = new ArrayList<>(); | ||||||
|  |         for (int i = 0; i < sheetDataList.size(); i++) { | ||||||
|  |             List<String> rowDataList = sheetDataList.get(i); | ||||||
|  |             if (rowDataList.get(0).equals(varietyNo) && rowDataList.get(1).equals(craftItemNo) && rowDataList.get(2).equals(qcItemNo)) { | ||||||
|  |                 appearIndexList.add(i); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return appearIndexList; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     List<String> QC_SPEC_HEAD = Arrays.asList("机种号", "工艺项目", "检验项目", "最大值", "最小值", "检验方法"); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 读取表头数据 | ||||||
|  |      */ | ||||||
|  |     private ReadSpecHeadBean readSpecHead(Row headRow) { | ||||||
|  |         ReadSpecHeadBean readResult = new ReadSpecHeadBean(); | ||||||
|  |         for (int i = 0; i < 6; i++) { | ||||||
|  |             if (!QC_SPEC_HEAD.get(i).equals(getValue(headRow.getCell(i)))) { | ||||||
|  |                 readResult.setSuccess(false); | ||||||
|  |                 readResult.setHeadCount(0); | ||||||
|  |                 readResult.setErrorMessage("表头第" + (i + 1) + "列应该是:" + QC_SPEC_HEAD.get(i)); | ||||||
|  |                 return readResult; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         readResult.setSuccess(true); | ||||||
|  |         readResult.setHeadCount(6); | ||||||
|  |         readResult.setErrorMessage(""); | ||||||
|  |         return readResult; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获取单元格内的数据,并进行格式转换 | ||||||
|  |      */ | ||||||
|  |     private String getValue(Cell cell) { | ||||||
|  |         if (cell == null) { | ||||||
|  |             return ""; | ||||||
|  |         } | ||||||
|  |         if (Cell.CELL_TYPE_STRING == cell.getCellType()) { | ||||||
|  |             return cell.getStringCellValue(); | ||||||
|  |         } | ||||||
|  |         if (Cell.CELL_TYPE_BOOLEAN == cell.getCellType()) { | ||||||
|  |             return String.valueOf(cell.getBooleanCellValue()); | ||||||
|  |         } | ||||||
|  |         if (Cell.CELL_TYPE_NUMERIC == cell.getCellType()) {//数值和日期均是此类型,需进一步判断 | ||||||
|  |             if (HSSFDateUtil.isCellDateFormatted(cell)) { | ||||||
|  |                 //是日期类型 | ||||||
|  |                 return String.valueOf(cell.getDateCellValue().getTime()); | ||||||
|  |             } else { | ||||||
|  |                 //是数值类型 | ||||||
|  |                 return String.valueOf(cell.getNumericCellValue()); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return ""; | ||||||
|  |  | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public String exportSpecExcel() { | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user