From 21fd371554b60a603b645e444ff002493472f8c4 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 4 Aug 2020 11:33:07 +0800 Subject: [PATCH] .gitignore --- .gitignore | 2 ++ bin/.gitignore | 12 ------------ src/main/java/com/taover/easyexcel/analysis/ExcelAnalyserImpl.java | 6 ++++++ src/main/java/com/taover/easyexcel/analysis/v07/XlsxSaxAnalyser.java | 2 +- src/main/java/com/taover/easyexcel/analysis/v07/handlers/RowTagHandler.java | 3 ++- src/main/java/com/taover/easyexcel/analysis/v07/handlers/sax/XlsxRowHandler.java | 34 +++++++++++++++++++++++++++++++--- src/main/java/com/taover/easyexcel/read/builder/ExcelReaderBuilder.java | 17 ++++++++++++++--- src/main/java/com/taover/easyexcel/read/builder/ExcelReaderSheetBuilder.java | 5 +++++ src/main/java/com/taover/easyexcel/read/metadata/ReadSheet.java | 26 ++++++++++++++++++++++---- src/main/java/com/taover/easyexcel/read/metadata/holder/ReadWorkbookHolder.java | 14 +++++++++++++- src/main/java/com/taover/easyexcel/util/SheetUtils.java | 4 ++-- src/test/java/com/taover/easyexcel/test/demo/read/ReadTest.java | 19 ++++++++++--------- 12 files changed, 108 insertions(+), 36 deletions(-) diff --git a/.gitignore b/.gitignore index 7b0dab8..7bcdb9f 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ antx.properties output/ /.gradle/ build/ +bin/ +./bin/ diff --git a/bin/.gitignore b/bin/.gitignore index 45ecde4..c2d9872 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,13 +1 @@ /com/ -/converter/ -/dataformat/ -/demo/ -/extra/ -/fill/ -/large/ -/logback.xml -/multiplesheets/ -/simple/ -/template/ -/main/ -/test/ diff --git a/src/main/java/com/taover/easyexcel/analysis/ExcelAnalyserImpl.java b/src/main/java/com/taover/easyexcel/analysis/ExcelAnalyserImpl.java index 9a06d39..f1f2253 100644 --- a/src/main/java/com/taover/easyexcel/analysis/ExcelAnalyserImpl.java +++ b/src/main/java/com/taover/easyexcel/analysis/ExcelAnalyserImpl.java @@ -111,6 +111,12 @@ public class ExcelAnalyserImpl implements ExcelAnalyser { } analysisContext.readWorkbookHolder().setParameterSheetDataList(readSheetList); analysisContext.readWorkbookHolder().setReadAll(readAll); + for(ReadSheet item: readSheetList) { + if(item.getSheetSelected()) { + analysisContext.readWorkbookHolder().setReadJustSelected(true); + break; + } + } try { excelReadExecutor.execute(); } catch (ExcelAnalysisStopException e) { diff --git a/src/main/java/com/taover/easyexcel/analysis/v07/XlsxSaxAnalyser.java b/src/main/java/com/taover/easyexcel/analysis/v07/XlsxSaxAnalyser.java index 2207332..7cbdc62 100644 --- a/src/main/java/com/taover/easyexcel/analysis/v07/XlsxSaxAnalyser.java +++ b/src/main/java/com/taover/easyexcel/analysis/v07/XlsxSaxAnalyser.java @@ -87,7 +87,7 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { if (!ite.hasNext()) { throw new ExcelAnalysisException("Can not find any sheet!"); } - while (ite.hasNext()) { + while (ite.hasNext()) { InputStream inputStream = ite.next(); sheetList.add(new ReadSheet(index, ite.getSheetName())); sheetMap.put(index, inputStream); diff --git a/src/main/java/com/taover/easyexcel/analysis/v07/handlers/RowTagHandler.java b/src/main/java/com/taover/easyexcel/analysis/v07/handlers/RowTagHandler.java index 22f80f5..a8006ed 100644 --- a/src/main/java/com/taover/easyexcel/analysis/v07/handlers/RowTagHandler.java +++ b/src/main/java/com/taover/easyexcel/analysis/v07/handlers/RowTagHandler.java @@ -23,7 +23,8 @@ public class RowTagHandler extends AbstractXlsxTagHandler { @Override public boolean checkAndDoStartElementSkip(XlsxReadContext xlsxReadContext, String name, Attributes attributes) { - if(!xlsxReadContext.xlsxReadWorkbookHolder().getReadHiddenRow() + if(xlsxReadContext.xlsxReadWorkbookHolder().getReadHiddenRow() != null + && !xlsxReadContext.xlsxReadWorkbookHolder().getReadHiddenRow() && isHiddenRow(attributes)) { this.skipElementName = name; return true; diff --git a/src/main/java/com/taover/easyexcel/analysis/v07/handlers/sax/XlsxRowHandler.java b/src/main/java/com/taover/easyexcel/analysis/v07/handlers/sax/XlsxRowHandler.java index 5ec24dc..a5051f2 100644 --- a/src/main/java/com/taover/easyexcel/analysis/v07/handlers/sax/XlsxRowHandler.java +++ b/src/main/java/com/taover/easyexcel/analysis/v07/handlers/sax/XlsxRowHandler.java @@ -23,6 +23,7 @@ import com.taover.easyexcel.context.xlsx.XlsxReadContext; * @author jipengfei */ public class XlsxRowHandler extends DefaultHandler { + private static final boolean XLSX_DEBUB_PRINT_INFO = true; private XlsxReadContext xlsxReadContext; private static final Map XLSX_CELL_HANDLER_MAP = new HashMap(32); @@ -59,6 +60,9 @@ public class XlsxRowHandler extends DefaultHandler { @Override public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException { + if(XLSX_DEBUB_PRINT_INFO) { + this.printElement("startElement", uri, localName, name, attributes); + } XlsxTagHandler handler = XLSX_CELL_HANDLER_MAP.get(name); if (handler == null || !handler.support(xlsxReadContext) @@ -69,9 +73,25 @@ public class XlsxRowHandler extends DefaultHandler { handler.startElement(xlsxReadContext, name, attributes); } - @Override + private void printElement(String title, String uri, String localName, String name, Attributes attributes) { + System.out.println("======"+title+"======"); + System.out.println("> uri:"+uri); + System.out.println("> localName:"+localName); + System.out.println("> name:"+name); + if(attributes == null) { + return; + } + for(int i=0; i> attributes["+i+"]->uri:"+attributes.getURI(i)+",qName:"+attributes.getQName(i)+",value:"+attributes.getValue(i)); + } + } + + @Override public void characters(char[] ch, int start, int length) throws SAXException { - String currentTag = xlsxReadContext.xlsxReadSheetHolder().getTagDeque().peek(); + if(XLSX_DEBUB_PRINT_INFO) { + this.printCharacters(ch); + } + String currentTag = xlsxReadContext.xlsxReadSheetHolder().getTagDeque().peek(); if (currentTag == null) { return; } @@ -84,8 +104,16 @@ public class XlsxRowHandler extends DefaultHandler { handler.characters(xlsxReadContext, ch, start, length); } - @Override + private void printCharacters(char[] ch) { + System.out.println(">>>>>>characters>>>>>>"); + System.out.println(new String(ch)); + } + + @Override public void endElement(String uri, String localName, String name) throws SAXException { + if(XLSX_DEBUB_PRINT_INFO) { + this.printElement("endElement", uri, localName, name, null); + } XlsxTagHandler handler = XLSX_CELL_HANDLER_MAP.get(name); if (handler == null || !handler.support(xlsxReadContext) diff --git a/src/main/java/com/taover/easyexcel/read/builder/ExcelReaderBuilder.java b/src/main/java/com/taover/easyexcel/read/builder/ExcelReaderBuilder.java index 43e98bb..2717364 100644 --- a/src/main/java/com/taover/easyexcel/read/builder/ExcelReaderBuilder.java +++ b/src/main/java/com/taover/easyexcel/read/builder/ExcelReaderBuilder.java @@ -241,18 +241,26 @@ public class ExcelReaderBuilder extends AbstractExcelReaderParameterBuilder