Commit 89401b411fd27b07dcfe19ae3f8b7a0e5000943a

Authored by unknown
2 parents 9b79e37a ec434432
Exists in master

fix a bug

@@ -59,7 +59,7 @@ uploadArchives { @@ -59,7 +59,7 @@ uploadArchives {
59 authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) 59 authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
60 } 60 }
61 pom.project { 61 pom.project {
62 - version '1.1.76' 62 + version '1.1.82'
63 artifactId ARTIFACT_Id 63 artifactId ARTIFACT_Id
64 groupId GROUP_ID 64 groupId GROUP_ID
65 packaging TYPE 65 packaging TYPE
src/main/java/com/taover/util/UtilExcel.java
@@ -2,6 +2,7 @@ package com.taover.util; @@ -2,6 +2,7 @@ package com.taover.util;
2 2
3 import java.io.File; 3 import java.io.File;
4 import java.io.FileOutputStream; 4 import java.io.FileOutputStream;
  5 +import java.math.BigDecimal;
5 import java.text.DecimalFormat; 6 import java.text.DecimalFormat;
6 import java.text.SimpleDateFormat; 7 import java.text.SimpleDateFormat;
7 import java.util.ArrayList; 8 import java.util.ArrayList;
@@ -10,6 +11,7 @@ import java.util.HashMap; @@ -10,6 +11,7 @@ import java.util.HashMap;
10 import java.util.List; 11 import java.util.List;
11 import java.util.Map; 12 import java.util.Map;
12 13
  14 +import org.apache.poi.hssf.usermodel.HSSFDataFormatter;
13 import org.apache.poi.hssf.usermodel.HSSFWorkbook; 15 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
14 import org.apache.poi.openxml4j.util.ZipSecureFile; 16 import org.apache.poi.openxml4j.util.ZipSecureFile;
15 import org.apache.poi.ss.usermodel.Cell; 17 import org.apache.poi.ss.usermodel.Cell;
@@ -387,10 +389,6 @@ public class UtilExcel { @@ -387,10 +389,6 @@ public class UtilExcel {
387 } 389 }
388 Workbook wb = UtilExcel.getWorkbook(filepath, true); 390 Workbook wb = UtilExcel.getWorkbook(filepath, true);
389 Sheet sheet = wb.getSheetAt(sheetIndex); 391 Sheet sheet = wb.getSheetAt(sheetIndex);
390 - int end = sheet.getLastRowNum();  
391 - if(end > UtilExcel.maxExcelRowNum){  
392 - //throw new Exception("目前系统只支持读取10000行以内记录,您当前Excel行数过大");  
393 - }  
394 return readExcelBySheet(sheet, UtilExcel.maxExcelRowNum, false); 392 return readExcelBySheet(sheet, UtilExcel.maxExcelRowNum, false);
395 } 393 }
396 394
@@ -400,11 +398,7 @@ public class UtilExcel { @@ -400,11 +398,7 @@ public class UtilExcel {
400 398
401 private static List<List<Object>> readExcelBySheetIndex(Workbook wb, int sheetIndex, boolean hasRowLimit) throws Exception{ 399 private static List<List<Object>> readExcelBySheetIndex(Workbook wb, int sheetIndex, boolean hasRowLimit) throws Exception{
402 Sheet sheet = wb.getSheetAt(sheetIndex); 400 Sheet sheet = wb.getSheetAt(sheetIndex);
403 - int end = sheet.getLastRowNum();  
404 if(hasRowLimit){ 401 if(hasRowLimit){
405 - if(end > UtilExcel.maxExcelRowNum) {  
406 - throw new Exception("目前系统只支持读取10000行以内记录,您当前Excel行数过大");  
407 - }  
408 return readExcelBySheet(sheet, UtilExcel.maxExcelRowNum, false); 402 return readExcelBySheet(sheet, UtilExcel.maxExcelRowNum, false);
409 }else { 403 }else {
410 return readExcelBySheet(sheet, Integer.MAX_VALUE, false); 404 return readExcelBySheet(sheet, Integer.MAX_VALUE, false);
@@ -459,13 +453,25 @@ public class UtilExcel { @@ -459,13 +453,25 @@ public class UtilExcel {
459 if(currCellType.compareTo(CellType.STRING) == 0){ 453 if(currCellType.compareTo(CellType.STRING) == 0){
460 return UtilString.trimCodePage(cell.getRichStringCellValue().getString()); 454 return UtilString.trimCodePage(cell.getRichStringCellValue().getString());
461 }else if(currCellType.compareTo(CellType.NUMERIC) == 0){ 455 }else if(currCellType.compareTo(CellType.NUMERIC) == 0){
462 - if (cell.getCellStyle().getDataFormat()==28||cell.getCellStyle().getDataFormat()==31 || cell.getCellStyle().getDataFormat() == 58) { 456 +
  457 + /**
  458 + * yyyy-MM-dd----- 14
  459 + yyyy年m月d日--- 31
  460 + yyyy年m月------- 57
  461 + m月d日 ---------- 58
  462 + HH:mm----------- 20
  463 + h时mm分 ------- 32
  464 + */
  465 + System.out.println(cell.getCellStyle().getDataFormat());
  466 + if (cell.getCellStyle().getDataFormat()==28||cell.getCellStyle().getDataFormat()==31
  467 + || cell.getCellStyle().getDataFormat() == 58 || cell.getCellStyle().getDataFormat()==14
  468 + || cell.getCellStyle().getDataFormat()==57 || cell.getCellStyle().getDataFormat()==32 || cell.getCellStyle().getDataFormat()==20) {
463 // 如果是date类型则 ,获取该cell的date值 469 // 如果是date类型则 ,获取该cell的date值
464 return new SimpleDateFormat("yyyy-MM-dd").format(DateUtil.getJavaDate(cell.getNumericCellValue())); 470 return new SimpleDateFormat("yyyy-MM-dd").format(DateUtil.getJavaDate(cell.getNumericCellValue()));
465 - } else {  
466 - // 纯数字gaoming 新增兼容浮点型,转成字符串读取,不然小数点被省略了  
467 - cell.setCellType(CellType.STRING);  
468 - return UtilString.trimCodePage(cell.getRichStringCellValue().getString()); 471 + } else {
  472 + //gaoming 这个是poi自带获取value通用,如果再有问题就用这个试试!!!
  473 + HSSFDataFormatter dataFormatter = new HSSFDataFormatter();
  474 + return dataFormatter.formatCellValue(cell);
469 } 475 }
470 }else if(currCellType.compareTo(CellType.BOOLEAN) == 0){ 476 }else if(currCellType.compareTo(CellType.BOOLEAN) == 0){
471 return cell.getBooleanCellValue(); 477 return cell.getBooleanCellValue();
@@ -497,16 +503,12 @@ public class UtilExcel { @@ -497,16 +503,12 @@ public class UtilExcel {
497 } 503 }
498 Workbook wb = UtilExcel.getWorkbook(filepath, true); 504 Workbook wb = UtilExcel.getWorkbook(filepath, true);
499 Sheet sheet = wb.getSheetAt(sheetIndex); 505 Sheet sheet = wb.getSheetAt(sheetIndex);
500 - int end = sheet.getLastRowNum();  
501 - if(end > UtilExcel.maxExcelRowNum){  
502 - throw new Exception("目前系统只支持读取10000行以内记录,您当前Excel行数过大");  
503 - }  
504 return readExcelBySheet(sheet, UtilExcel.maxExcelRowNum, true); 506 return readExcelBySheet(sheet, UtilExcel.maxExcelRowNum, true);
505 } 507 }
506 508
507 public static void main(String args[]){ 509 public static void main(String args[]){
508 //String filepath = "C:\\Users\\root\\Desktop\\千丁-6.27.xlsx"; 510 //String filepath = "C:\\Users\\root\\Desktop\\千丁-6.27.xlsx";
509 - String filepath = "C:\\Users\\gaoming\\Desktop\\mmm.xlsx"; 511 + String filepath = "C:\\Users\\EDZ\\Desktop\\aaa.xlsx";
510 List<List<Object>> data = null; 512 List<List<Object>> data = null;
511 513
512 try { 514 try {