Commit 4e9847010b4269afb1265543d5a2031c8eeed8fd
1 parent
05ceff0f
Exists in
master
1.提交代码
Showing
10 changed files
with
122 additions
and
43 deletions
Show diff stats
src/main/java/com/taover/easyexcel/analysis/ExcelAnalyserImpl.java
@@ -112,12 +112,17 @@ public class ExcelAnalyserImpl implements ExcelAnalyser { | @@ -112,12 +112,17 @@ public class ExcelAnalyserImpl implements ExcelAnalyser { | ||
112 | analysisContext.readWorkbookHolder().setParameterSheetDataList(readSheetList); | 112 | analysisContext.readWorkbookHolder().setParameterSheetDataList(readSheetList); |
113 | analysisContext.readWorkbookHolder().setReadAll(readAll); | 113 | analysisContext.readWorkbookHolder().setReadAll(readAll); |
114 | analysisContext.readWorkbookHolder().setReadJustSelected(false); | 114 | analysisContext.readWorkbookHolder().setReadJustSelected(false); |
115 | - for(ReadSheet item: readSheetList) { | ||
116 | - if(item.getSheetSelected()) { | ||
117 | - analysisContext.readWorkbookHolder().setReadJustSelected(true); | ||
118 | - break; | ||
119 | - } | 115 | + |
116 | + if(readSheetList != null) { | ||
117 | + for(ReadSheet item: readSheetList) { | ||
118 | + if(item.getSheetSelected() != null && item.getSheetSelected()) { | ||
119 | + analysisContext.readWorkbookHolder().setReadJustSelected(true); | ||
120 | + analysisContext.readWorkbookHolder().setReadAll(true); | ||
121 | + break; | ||
122 | + } | ||
123 | + } | ||
120 | } | 124 | } |
125 | + | ||
121 | try { | 126 | try { |
122 | excelReadExecutor.execute(); | 127 | excelReadExecutor.execute(); |
123 | } catch (ExcelAnalysisStopException e) { | 128 | } catch (ExcelAnalysisStopException e) { |
src/main/java/com/taover/easyexcel/analysis/v07/XlsxSaxAnalyser.java
@@ -23,8 +23,11 @@ import org.apache.poi.xssf.usermodel.XSSFRelation; | @@ -23,8 +23,11 @@ import org.apache.poi.xssf.usermodel.XSSFRelation; | ||
23 | import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook; | 23 | import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook; |
24 | import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookPr; | 24 | import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookPr; |
25 | import org.openxmlformats.schemas.spreadsheetml.x2006.main.WorkbookDocument; | 25 | import org.openxmlformats.schemas.spreadsheetml.x2006.main.WorkbookDocument; |
26 | +import org.slf4j.Logger; | ||
27 | +import org.slf4j.LoggerFactory; | ||
26 | import org.xml.sax.ContentHandler; | 28 | import org.xml.sax.ContentHandler; |
27 | import org.xml.sax.InputSource; | 29 | import org.xml.sax.InputSource; |
30 | +import org.xml.sax.SAXException; | ||
28 | import org.xml.sax.XMLReader; | 31 | import org.xml.sax.XMLReader; |
29 | 32 | ||
30 | import com.taover.easyexcel.analysis.ExcelReadExecutor; | 33 | import com.taover.easyexcel.analysis.ExcelReadExecutor; |
@@ -34,6 +37,7 @@ import com.taover.easyexcel.cache.ReadCache; | @@ -34,6 +37,7 @@ import com.taover.easyexcel.cache.ReadCache; | ||
34 | import com.taover.easyexcel.context.xlsx.XlsxReadContext; | 37 | import com.taover.easyexcel.context.xlsx.XlsxReadContext; |
35 | import com.taover.easyexcel.enums.CellExtraTypeEnum; | 38 | import com.taover.easyexcel.enums.CellExtraTypeEnum; |
36 | import com.taover.easyexcel.exception.ExcelAnalysisException; | 39 | import com.taover.easyexcel.exception.ExcelAnalysisException; |
40 | +import com.taover.easyexcel.exception.SheetNotSelectedException; | ||
37 | import com.taover.easyexcel.metadata.CellExtra; | 41 | import com.taover.easyexcel.metadata.CellExtra; |
38 | import com.taover.easyexcel.read.metadata.ReadSheet; | 42 | import com.taover.easyexcel.read.metadata.ReadSheet; |
39 | import com.taover.easyexcel.read.metadata.holder.xlsx.XlsxReadWorkbookHolder; | 43 | import com.taover.easyexcel.read.metadata.holder.xlsx.XlsxReadWorkbookHolder; |
@@ -46,7 +50,8 @@ import com.taover.easyexcel.util.StringUtils; | @@ -46,7 +50,8 @@ import com.taover.easyexcel.util.StringUtils; | ||
46 | * @author jipengfei | 50 | * @author jipengfei |
47 | */ | 51 | */ |
48 | public class XlsxSaxAnalyser implements ExcelReadExecutor { | 52 | public class XlsxSaxAnalyser implements ExcelReadExecutor { |
49 | - | 53 | + private static final Logger LOGGER = LoggerFactory.getLogger(XlsxSaxAnalyser.class); |
54 | + | ||
50 | private XlsxReadContext xlsxReadContext; | 55 | private XlsxReadContext xlsxReadContext; |
51 | private List<ReadSheet> sheetList; | 56 | private List<ReadSheet> sheetList; |
52 | private Map<Integer, InputStream> sheetMap; | 57 | private Map<Integer, InputStream> sheetMap; |
@@ -177,6 +182,10 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { | @@ -177,6 +182,10 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { | ||
177 | xmlReader.setContentHandler(handler); | 182 | xmlReader.setContentHandler(handler); |
178 | xmlReader.parse(inputSource); | 183 | xmlReader.parse(inputSource); |
179 | inputStream.close(); | 184 | inputStream.close(); |
185 | + } catch (SAXException e) { | ||
186 | + if(e.getException() instanceof SheetNotSelectedException) { | ||
187 | + LOGGER.warn(e.getMessage()); | ||
188 | + } | ||
180 | } catch (ExcelAnalysisException e) { | 189 | } catch (ExcelAnalysisException e) { |
181 | throw e; | 190 | throw e; |
182 | } catch (Exception e) { | 191 | } catch (Exception e) { |
@@ -197,16 +206,12 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { | @@ -197,16 +206,12 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { | ||
197 | for (ReadSheet readSheet : sheetList) { | 206 | for (ReadSheet readSheet : sheetList) { |
198 | readSheet = SheetUtils.match(readSheet, xlsxReadContext); | 207 | readSheet = SheetUtils.match(readSheet, xlsxReadContext); |
199 | if (readSheet != null) { | 208 | if (readSheet != null) { |
200 | - try { | ||
201 | - xlsxReadContext.currentSheet(readSheet); | ||
202 | - parseXmlSource(sheetMap.get(readSheet.getSheetNo()), new XlsxRowHandler(xlsxReadContext)); | ||
203 | - // Read comments | ||
204 | - readComments(readSheet); | ||
205 | - // The last sheet is read | ||
206 | - xlsxReadContext.analysisEventProcessor().endSheet(xlsxReadContext); | ||
207 | - }catch (Exception e) { | ||
208 | - e.printStackTrace(); | ||
209 | - } | 209 | + xlsxReadContext.currentSheet(readSheet); |
210 | + parseXmlSource(sheetMap.get(readSheet.getSheetNo()), new XlsxRowHandler(xlsxReadContext)); | ||
211 | + // Read comments | ||
212 | + readComments(readSheet); | ||
213 | + // The last sheet is read | ||
214 | + xlsxReadContext.analysisEventProcessor().endSheet(xlsxReadContext); | ||
210 | } | 215 | } |
211 | } | 216 | } |
212 | } | 217 | } |
src/main/java/com/taover/easyexcel/analysis/v07/handlers/AbstractXlsxTagHandler.java
1 | package com.taover.easyexcel.analysis.v07.handlers; | 1 | package com.taover.easyexcel.analysis.v07.handlers; |
2 | 2 | ||
3 | import org.xml.sax.Attributes; | 3 | import org.xml.sax.Attributes; |
4 | +import org.xml.sax.SAXException; | ||
4 | 5 | ||
5 | import com.taover.easyexcel.context.xlsx.XlsxReadContext; | 6 | import com.taover.easyexcel.context.xlsx.XlsxReadContext; |
6 | 7 | ||
@@ -31,7 +32,7 @@ public abstract class AbstractXlsxTagHandler implements XlsxTagHandler { | @@ -31,7 +32,7 @@ public abstract class AbstractXlsxTagHandler implements XlsxTagHandler { | ||
31 | } | 32 | } |
32 | 33 | ||
33 | @Override | 34 | @Override |
34 | - public void startElement(XlsxReadContext xlsxReadContext, String name, Attributes attributes) { | 35 | + public void startElement(XlsxReadContext xlsxReadContext, String name, Attributes attributes) throws SAXException { |
35 | 36 | ||
36 | } | 37 | } |
37 | 38 |
src/main/java/com/taover/easyexcel/analysis/v07/handlers/SheetViewHandler.java
0 → 100644
@@ -0,0 +1,29 @@ | @@ -0,0 +1,29 @@ | ||
1 | +package com.taover.easyexcel.analysis.v07.handlers; | ||
2 | + | ||
3 | +import org.xml.sax.Attributes; | ||
4 | +import org.xml.sax.SAXException; | ||
5 | + | ||
6 | +import com.taover.easyexcel.constant.ExcelXmlConstants; | ||
7 | +import com.taover.easyexcel.context.xlsx.XlsxReadContext; | ||
8 | +import com.taover.easyexcel.exception.SheetNotSelectedException; | ||
9 | + | ||
10 | +/** | ||
11 | + * Cell Handler | ||
12 | + * | ||
13 | + * @author jipengfei | ||
14 | + */ | ||
15 | +public class SheetViewHandler extends AbstractXlsxTagHandler { | ||
16 | + | ||
17 | + @Override | ||
18 | + public void startElement(XlsxReadContext xlsxReadContext, String name, Attributes attributes) throws SAXException { | ||
19 | + //whether just read selected sheet | ||
20 | + Boolean readJustSelected = xlsxReadContext.readWorkbookHolder().getReadJustSelected(); | ||
21 | + if(ExcelXmlConstants.SHEET_VIEW_TAG.equals(name) | ||
22 | + && readJustSelected != null | ||
23 | + && readJustSelected | ||
24 | + && !"1".equals(attributes.getValue(ExcelXmlConstants.ATTRIBUTE_TAB_SELECTED))) { | ||
25 | + throw new SAXException("not selected sheet, just read selected sheet", new SheetNotSelectedException()); | ||
26 | + } | ||
27 | + } | ||
28 | + | ||
29 | +} |
src/main/java/com/taover/easyexcel/analysis/v07/handlers/XlsxTagHandler.java
1 | package com.taover.easyexcel.analysis.v07.handlers; | 1 | package com.taover.easyexcel.analysis.v07.handlers; |
2 | 2 | ||
3 | import org.xml.sax.Attributes; | 3 | import org.xml.sax.Attributes; |
4 | +import org.xml.sax.SAXException; | ||
4 | 5 | ||
5 | import com.taover.easyexcel.context.xlsx.XlsxReadContext; | 6 | import com.taover.easyexcel.context.xlsx.XlsxReadContext; |
6 | 7 | ||
@@ -28,8 +29,9 @@ public interface XlsxTagHandler { | @@ -28,8 +29,9 @@ public interface XlsxTagHandler { | ||
28 | * Tag name | 29 | * Tag name |
29 | * @param attributes | 30 | * @param attributes |
30 | * Tag attributes | 31 | * Tag attributes |
32 | + * @throws SAXException | ||
31 | */ | 33 | */ |
32 | - void startElement(XlsxReadContext xlsxReadContext, String name, Attributes attributes); | 34 | + void startElement(XlsxReadContext xlsxReadContext, String name, Attributes attributes) throws SAXException; |
33 | 35 | ||
34 | /** | 36 | /** |
35 | * End handle | 37 | * End handle |
src/main/java/com/taover/easyexcel/analysis/v07/handlers/sax/XlsxRowHandler.java
@@ -3,6 +3,8 @@ package com.taover.easyexcel.analysis.v07.handlers.sax; | @@ -3,6 +3,8 @@ package com.taover.easyexcel.analysis.v07.handlers.sax; | ||
3 | import java.util.HashMap; | 3 | import java.util.HashMap; |
4 | import java.util.Map; | 4 | import java.util.Map; |
5 | 5 | ||
6 | +import org.slf4j.Logger; | ||
7 | +import org.slf4j.LoggerFactory; | ||
6 | import org.xml.sax.Attributes; | 8 | import org.xml.sax.Attributes; |
7 | import org.xml.sax.SAXException; | 9 | import org.xml.sax.SAXException; |
8 | import org.xml.sax.helpers.DefaultHandler; | 10 | import org.xml.sax.helpers.DefaultHandler; |
@@ -15,6 +17,7 @@ import com.taover.easyexcel.analysis.v07.handlers.CountTagHandler; | @@ -15,6 +17,7 @@ import com.taover.easyexcel.analysis.v07.handlers.CountTagHandler; | ||
15 | import com.taover.easyexcel.analysis.v07.handlers.HyperlinkTagHandler; | 17 | import com.taover.easyexcel.analysis.v07.handlers.HyperlinkTagHandler; |
16 | import com.taover.easyexcel.analysis.v07.handlers.MergeCellTagHandler; | 18 | import com.taover.easyexcel.analysis.v07.handlers.MergeCellTagHandler; |
17 | import com.taover.easyexcel.analysis.v07.handlers.RowTagHandler; | 19 | import com.taover.easyexcel.analysis.v07.handlers.RowTagHandler; |
20 | +import com.taover.easyexcel.analysis.v07.handlers.SheetViewHandler; | ||
18 | import com.taover.easyexcel.analysis.v07.handlers.XlsxTagHandler; | 21 | import com.taover.easyexcel.analysis.v07.handlers.XlsxTagHandler; |
19 | import com.taover.easyexcel.constant.ExcelXmlConstants; | 22 | import com.taover.easyexcel.constant.ExcelXmlConstants; |
20 | import com.taover.easyexcel.context.xlsx.XlsxReadContext; | 23 | import com.taover.easyexcel.context.xlsx.XlsxReadContext; |
@@ -23,7 +26,8 @@ import com.taover.easyexcel.context.xlsx.XlsxReadContext; | @@ -23,7 +26,8 @@ import com.taover.easyexcel.context.xlsx.XlsxReadContext; | ||
23 | * @author jipengfei | 26 | * @author jipengfei |
24 | */ | 27 | */ |
25 | public class XlsxRowHandler extends DefaultHandler { | 28 | public class XlsxRowHandler extends DefaultHandler { |
26 | - private static final boolean XLSX_DEBUB_PRINT_INFO = false; | 29 | + private static final Logger LOGGER = LoggerFactory.getLogger(XlsxRowHandler.class); |
30 | + private static final boolean XLSX_DEBUG_PRINT_INFO = false; | ||
27 | private XlsxReadContext xlsxReadContext; | 31 | private XlsxReadContext xlsxReadContext; |
28 | private static final Map<String, XlsxTagHandler> XLSX_CELL_HANDLER_MAP = new HashMap<String, XlsxTagHandler>(32); | 32 | private static final Map<String, XlsxTagHandler> XLSX_CELL_HANDLER_MAP = new HashMap<String, XlsxTagHandler>(32); |
29 | 33 | ||
@@ -52,6 +56,9 @@ public class XlsxRowHandler extends DefaultHandler { | @@ -52,6 +56,9 @@ public class XlsxRowHandler extends DefaultHandler { | ||
52 | RowTagHandler rowTagHandler = new RowTagHandler(); | 56 | RowTagHandler rowTagHandler = new RowTagHandler(); |
53 | XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.ROW_TAG, rowTagHandler); | 57 | XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.ROW_TAG, rowTagHandler); |
54 | XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_ROW_TAG, rowTagHandler); | 58 | XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_ROW_TAG, rowTagHandler); |
59 | + SheetViewHandler sheetViewHandler = new SheetViewHandler(); | ||
60 | + XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.SHEET_VIEW_TAG, sheetViewHandler); | ||
61 | + XLSX_CELL_HANDLER_MAP.put(ExcelXmlConstants.X_SHEET_VIEW_TAG, sheetViewHandler); | ||
55 | } | 62 | } |
56 | 63 | ||
57 | public XlsxRowHandler(XlsxReadContext xlsxReadContext) { | 64 | public XlsxRowHandler(XlsxReadContext xlsxReadContext) { |
@@ -60,20 +67,10 @@ public class XlsxRowHandler extends DefaultHandler { | @@ -60,20 +67,10 @@ public class XlsxRowHandler extends DefaultHandler { | ||
60 | 67 | ||
61 | @Override | 68 | @Override |
62 | public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException { | 69 | public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException { |
63 | - if(XLSX_DEBUB_PRINT_INFO) { | 70 | + if(XLSX_DEBUG_PRINT_INFO) { |
64 | this.printElement("startElement", uri, localName, name, attributes); | 71 | this.printElement("startElement", uri, localName, name, attributes); |
65 | } | 72 | } |
66 | 73 | ||
67 | - //whether just read selected sheet | ||
68 | - Boolean readJustSelected = this.xlsxReadContext.readWorkbookHolder().getReadJustSelected(); | ||
69 | - if(ExcelXmlConstants.SHEET_VIEW_TAG.equals(name) | ||
70 | - && readJustSelected != null | ||
71 | - && readJustSelected | ||
72 | - && !"1".equals(attributes.getValue("tabSelected"))) { | ||
73 | - //throw new SAXException("not selected sheet, just read selected sheet"); | ||
74 | - //return; | ||
75 | - } | ||
76 | - | ||
77 | XlsxTagHandler handler = XLSX_CELL_HANDLER_MAP.get(name); | 74 | XlsxTagHandler handler = XLSX_CELL_HANDLER_MAP.get(name); |
78 | if (handler == null | 75 | if (handler == null |
79 | || !handler.support(xlsxReadContext) | 76 | || !handler.support(xlsxReadContext) |
@@ -85,22 +82,22 @@ public class XlsxRowHandler extends DefaultHandler { | @@ -85,22 +82,22 @@ public class XlsxRowHandler extends DefaultHandler { | ||
85 | } | 82 | } |
86 | 83 | ||
87 | private void printElement(String title, String uri, String localName, String name, Attributes attributes) { | 84 | private void printElement(String title, String uri, String localName, String name, Attributes attributes) { |
88 | - System.out.println("======"+title+"======"); | ||
89 | - System.out.println("> uri:"+uri); | ||
90 | - System.out.println("> localName:"+localName); | ||
91 | - System.out.println("> name:"+name); | 85 | + LOGGER.debug("======"+title+"======"); |
86 | + LOGGER.debug("> uri:"+uri); | ||
87 | + LOGGER.debug("> localName:"+localName); | ||
88 | + LOGGER.debug("> name:"+name); | ||
92 | if(attributes == null) { | 89 | if(attributes == null) { |
93 | return; | 90 | return; |
94 | } | 91 | } |
95 | for(int i=0; i<attributes.getLength(); ++i) { | 92 | for(int i=0; i<attributes.getLength(); ++i) { |
96 | - System.out.println(">> attributes["+i+"]->uri:"+attributes.getURI(i)+",qName:"+attributes.getQName(i)+",value:"+attributes.getValue(i)); | 93 | + LOGGER.debug(">> attributes["+i+"]->uri:"+attributes.getURI(i)+",qName:"+attributes.getQName(i)+",value:"+attributes.getValue(i)); |
97 | } | 94 | } |
98 | } | 95 | } |
99 | 96 | ||
100 | @Override | 97 | @Override |
101 | public void characters(char[] ch, int start, int length) throws SAXException { | 98 | public void characters(char[] ch, int start, int length) throws SAXException { |
102 | - if(XLSX_DEBUB_PRINT_INFO) { | ||
103 | - this.printCharacters(ch); | 99 | + if(XLSX_DEBUG_PRINT_INFO) { |
100 | + this.printCharacters(ch, start, length); | ||
104 | } | 101 | } |
105 | String currentTag = xlsxReadContext.xlsxReadSheetHolder().getTagDeque().peek(); | 102 | String currentTag = xlsxReadContext.xlsxReadSheetHolder().getTagDeque().peek(); |
106 | if (currentTag == null) { | 103 | if (currentTag == null) { |
@@ -115,14 +112,14 @@ public class XlsxRowHandler extends DefaultHandler { | @@ -115,14 +112,14 @@ public class XlsxRowHandler extends DefaultHandler { | ||
115 | handler.characters(xlsxReadContext, ch, start, length); | 112 | handler.characters(xlsxReadContext, ch, start, length); |
116 | } | 113 | } |
117 | 114 | ||
118 | - private void printCharacters(char[] ch) { | ||
119 | - System.out.println(">>>>>>characters>>>>>>"); | ||
120 | - System.out.println(new String(ch)); | 115 | + private void printCharacters(char[] ch, int start, int length) { |
116 | + LOGGER.debug(">>>>>>characters>>>>>>"); | ||
117 | + LOGGER.debug(new String(ch, start, length)); | ||
121 | } | 118 | } |
122 | 119 | ||
123 | @Override | 120 | @Override |
124 | public void endElement(String uri, String localName, String name) throws SAXException { | 121 | public void endElement(String uri, String localName, String name) throws SAXException { |
125 | - if(XLSX_DEBUB_PRINT_INFO) { | 122 | + if(XLSX_DEBUG_PRINT_INFO) { |
126 | this.printElement("endElement", uri, localName, name, null); | 123 | this.printElement("endElement", uri, localName, name, null); |
127 | } | 124 | } |
128 | XlsxTagHandler handler = XLSX_CELL_HANDLER_MAP.get(name); | 125 | XlsxTagHandler handler = XLSX_CELL_HANDLER_MAP.get(name); |
src/main/java/com/taover/easyexcel/constant/ExcelXmlConstants.java
@@ -61,4 +61,6 @@ public class ExcelXmlConstants { | @@ -61,4 +61,6 @@ public class ExcelXmlConstants { | ||
61 | * hidden attribute | 61 | * hidden attribute |
62 | */ | 62 | */ |
63 | public static final String ATTRIBUTE_HIDDEN = "hidden"; | 63 | public static final String ATTRIBUTE_HIDDEN = "hidden"; |
64 | + | ||
65 | + public static final String ATTRIBUTE_TAB_SELECTED = "tabSelected"; | ||
64 | } | 66 | } |
src/main/java/com/taover/easyexcel/exception/SheetNotSelectedException.java
0 → 100644
@@ -0,0 +1,22 @@ | @@ -0,0 +1,22 @@ | ||
1 | +package com.taover.easyexcel.exception; | ||
2 | + | ||
3 | +/** | ||
4 | + * | ||
5 | + * @author Wang bin | ||
6 | + */ | ||
7 | +public class SheetNotSelectedException extends RuntimeException { | ||
8 | + | ||
9 | + public SheetNotSelectedException() {} | ||
10 | + | ||
11 | + public SheetNotSelectedException(String message) { | ||
12 | + super(message); | ||
13 | + } | ||
14 | + | ||
15 | + public SheetNotSelectedException(String message, Throwable cause) { | ||
16 | + super(message, cause); | ||
17 | + } | ||
18 | + | ||
19 | + public SheetNotSelectedException(Throwable cause) { | ||
20 | + super(cause); | ||
21 | + } | ||
22 | +} |
src/main/java/com/taover/easyexcel/util/SheetUtils.java
@@ -27,9 +27,25 @@ public class SheetUtils { | @@ -27,9 +27,25 @@ public class SheetUtils { | ||
27 | */ | 27 | */ |
28 | public static ReadSheet match(ReadSheet readSheet, AnalysisContext analysisContext) { | 28 | public static ReadSheet match(ReadSheet readSheet, AnalysisContext analysisContext) { |
29 | ReadWorkbookHolder readWorkbookHolder = analysisContext.readWorkbookHolder(); | 29 | ReadWorkbookHolder readWorkbookHolder = analysisContext.readWorkbookHolder(); |
30 | - if (readWorkbookHolder.getReadAll() || readWorkbookHolder.getReadJustSelected()) { | 30 | + //read all and not read just selected |
31 | + if (readWorkbookHolder.getReadAll() && !readWorkbookHolder.getReadJustSelected()) { | ||
31 | return readSheet; | 32 | return readSheet; |
32 | } | 33 | } |
34 | + | ||
35 | + //read just selected | ||
36 | + if(readWorkbookHolder.getReadJustSelected()) { | ||
37 | + for (ReadSheet parameterReadSheet : readWorkbookHolder.getParameterSheetDataList()) { | ||
38 | + if (parameterReadSheet == null) { | ||
39 | + continue; | ||
40 | + } | ||
41 | + if(parameterReadSheet.getSheetSelected() != null && parameterReadSheet.getSheetSelected()) { | ||
42 | + readSheet.copyBasicParameter(parameterReadSheet); | ||
43 | + return readSheet; | ||
44 | + } | ||
45 | + } | ||
46 | + } | ||
47 | + | ||
48 | + //read by sheet no | ||
33 | for (ReadSheet parameterReadSheet : readWorkbookHolder.getParameterSheetDataList()) { | 49 | for (ReadSheet parameterReadSheet : readWorkbookHolder.getParameterSheetDataList()) { |
34 | if (parameterReadSheet == null) { | 50 | if (parameterReadSheet == null) { |
35 | continue; | 51 | continue; |
src/test/java/com/taover/easyexcel/test/demo/read/ReadTest.java
@@ -253,7 +253,7 @@ public class ReadTest { | @@ -253,7 +253,7 @@ public class ReadTest { | ||
253 | // } | 253 | // } |
254 | 254 | ||
255 | // 这里 也可以不指定class,返回一个list,然后读取第一个sheet 同步读取会自动finish | 255 | // 这里 也可以不指定class,返回一个list,然后读取第一个sheet 同步读取会自动finish |
256 | - List<Map<Integer, String>> listMap = EasyExcel.read("D://demo.xlsx").sheet(true).doReadSync(); | 256 | + List<Map<Integer, String>> listMap = EasyExcel.read("D://demo.xlsx").headRowNumber(0).sheet(true).doReadSync(); |
257 | for (Map<Integer, String> data : listMap) { | 257 | for (Map<Integer, String> data : listMap) { |
258 | // 返回每条数据的键值对 表示所在的列 和所在列的值 | 258 | // 返回每条数据的键值对 表示所在的列 和所在列的值 |
259 | LOGGER.info("读取到数据:{}", JSON.toJSONString(data)); | 259 | LOGGER.info("读取到数据:{}", JSON.toJSONString(data)); |