Commit 334261a74e9dd2573fd1ed7258dd717ed7fcd5ed
1 parent
bdc29d2c
Exists in
master
fix a bug about read hidden line
Showing
5 changed files
with
24 additions
and
12 deletions
Show diff stats
build.gradle
src/main/java/com/taover/easyexcel/analysis/v07/XlsxSaxAnalyser.java
1 | 1 | package com.taover.easyexcel.analysis.v07; |
2 | 2 | |
3 | 3 | import java.io.BufferedInputStream; |
4 | +import java.io.ByteArrayInputStream; | |
5 | +import java.io.ByteArrayOutputStream; | |
4 | 6 | import java.io.File; |
5 | 7 | import java.io.IOException; |
6 | 8 | import java.io.InputStream; |
... | ... | @@ -172,8 +174,8 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { |
172 | 174 | } |
173 | 175 | |
174 | 176 | private void parseXmlSource(InputStream inputStream, ContentHandler handler) { |
175 | - InputSource inputSource = new InputSource(inputStream); | |
176 | - //this.printInputSource(inputSource); | |
177 | + //InputSource inputSource = new InputSource(this.printInputSource(inputStream)); | |
178 | + InputSource inputSource = new InputSource(inputStream); | |
177 | 179 | try { |
178 | 180 | SAXParserFactory saxFactory; |
179 | 181 | String xlsxSAXParserFactoryName = xlsxReadContext.xlsxReadWorkbookHolder().getSaxParserFactoryName(); |
... | ... | @@ -209,22 +211,29 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { |
209 | 211 | } |
210 | 212 | } |
211 | 213 | |
212 | - private void printInputSource(InputSource inputSource) { | |
213 | - BufferedInputStream bis = new BufferedInputStream(inputSource.getByteStream()); | |
214 | - byte[] buffer = new byte[1000*1024]; | |
214 | + private InputStream printInputSource(InputStream inputStream) { | |
215 | + ByteArrayOutputStream bos = new ByteArrayOutputStream(); | |
216 | + byte[] buffer = new byte[1000*1024]; | |
217 | + BufferedInputStream bis = new BufferedInputStream(inputStream); | |
215 | 218 | try { |
216 | - int len = bis.read(buffer); | |
217 | - String data = new String(buffer, 0, len); | |
218 | - System.out.println(data); | |
219 | + int len = -1; | |
220 | + while( (len = bis.read(buffer)) != -1) { | |
221 | + bos.write(buffer, 0, len); | |
222 | + } | |
219 | 223 | bis.close(); |
224 | + bos.close(); | |
225 | + System.out.println(">>>parseXmlSource(inputStream)"); | |
226 | + System.out.println(new String(bos.toByteArray())); | |
220 | 227 | } catch (IOException e1) { |
221 | 228 | try { |
222 | 229 | bis.close(); |
230 | + bos.close(); | |
223 | 231 | } catch (IOException e) { |
224 | 232 | e.printStackTrace(); |
225 | 233 | } |
226 | 234 | e1.printStackTrace(); |
227 | 235 | } |
236 | + return new ByteArrayInputStream(bos.toByteArray()); | |
228 | 237 | } |
229 | 238 | |
230 | 239 | @Override | ... | ... |
src/main/java/com/taover/easyexcel/analysis/v07/handlers/RowTagHandler.java
... | ... | @@ -35,8 +35,9 @@ public class RowTagHandler extends AbstractXlsxTagHandler { |
35 | 35 | public boolean isHiddenRow(Attributes attributes) { |
36 | 36 | int attLen = attributes.getLength(); |
37 | 37 | for(int i=0; i<attLen; ++i) { |
38 | - if(ExcelXmlConstants.ATTRIBUTE_HIDDEN.equals(attributes.getLocalName(i)) | |
39 | - || ExcelXmlConstants.ATTRIBUTE_HIDDEN.equals(attributes.getQName(i))) { | |
38 | + if((ExcelXmlConstants.ATTRIBUTE_HIDDEN.equals(attributes.getLocalName(i)) | |
39 | + || ExcelXmlConstants.ATTRIBUTE_HIDDEN.equals(attributes.getQName(i))) | |
40 | + && !"false".equals(attributes.getValue(i))) { | |
40 | 41 | return true; |
41 | 42 | } |
42 | 43 | } | ... | ... |
src/main/java/com/taover/easyexcel/context/AnalysisContextImpl.java
... | ... | @@ -88,7 +88,7 @@ public class AnalysisContextImpl implements AnalysisContext { |
88 | 88 | } |
89 | 89 | readWorkbookHolder.getHasReadSheet().add(readSheetHolder.getSheetNo()); |
90 | 90 | if (LOGGER.isDebugEnabled()) { |
91 | - LOGGER.debug("Began to read:{}", readSheetHolder); | |
91 | + LOGGER.debug("======Began to read:{}======", readSheetHolder); | |
92 | 92 | } |
93 | 93 | } |
94 | 94 | ... | ... |
src/test/java/com/taover/easyexcel/test/WbTest.java
... | ... | @@ -10,7 +10,9 @@ import com.taover.easyexcel.EasyExcel; |
10 | 10 | |
11 | 11 | public class WbTest { |
12 | 12 | public static void main(String[] args) { |
13 | + //File dataFile = new File("C:\\Users\\Administrator\\Desktop\\数据为空\\好合意商城_20210127_16_47(1).xlsx"); | |
13 | 14 | File dataFile = new File("C:\\Users\\Administrator\\Desktop\\Excel隐藏行\\配送确认1.16(1).xlsx"); |
15 | + //File dataFile = new File("C:\\Users\\Administrator\\Desktop\\表头匹配-测试文件\\多sheet-多个可用-数据有无.xlsx"); | |
14 | 16 | // List<List<Object>> data = transListMapTo2List(EasyExcel.read(dataFile).readHiddenRow(false).headRowNumber(0).doReadSelectedSync()); |
15 | 17 | // for(List<Object> row: data) { |
16 | 18 | // for(Object item: row) { | ... | ... |