diff --git a/src/main/java/com/nis/util/excel/XLSXCovertCSVReader.java b/src/main/java/com/nis/util/excel/XLSXCovertCSVReader.java index 4c195e4ee..79f66204b 100644 --- a/src/main/java/com/nis/util/excel/XLSXCovertCSVReader.java +++ b/src/main/java/com/nis/util/excel/XLSXCovertCSVReader.java @@ -8,7 +8,9 @@ import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; @@ -32,6 +34,8 @@ import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; +import com.nis.util.StringUtil; + /** * 使用CVS模式解决XLSX文件,可以有效解决用户模式内存溢出的问题 @@ -102,6 +106,7 @@ public abstract class XLSXCovertCSVReader { // The last column printed to the output stream private int lastColumnNumber = -1; private List rowlist = new ArrayList(); + private Map rowMap = new HashMap(); // Gathers characters as they are seen. private StringBuffer value; // private String[] record; @@ -128,6 +133,7 @@ public abstract class XLSXCovertCSVReader { this.nextDataType = xssfDataType.NUMBER; this.formatter = new DataFormatter(); rowlist.clear();// 每次读取都清空行集合 + rowMap.clear(); } /* @@ -286,7 +292,8 @@ public abstract class XLSXCovertCSVReader { if(!refnum.equals(preRefnum)){ int len = countNullCell(refnum, preRefnum); for(int i=0;i tempList=new ArrayList<>(totalLen); - for(int i=0;i<(totalLen-rowlist.size());i++) { - tempList.add(""); + //修改某一个单元格为空,字段映射顺序错乱问题 + for(int i=0;i