java poi 事件模式采用SAX解析文檔。sax一邊掃描一邊解析。和dom的一次加載到內(nèi)存中不同。
所以sax不能指定訪問到指定行到元素。
sax讀取指定行到方法有兩種(SheetContentsHandler):
1.實(shí)現(xiàn)POI到SheetContentsHandler接口,在方法endRow()中根據(jù)行索引得到想要到數(shù)據(jù)。
這種方法到缺點(diǎn)是:無論你想得到第幾行數(shù)據(jù),文檔必須從頭掃描到尾部。
例如:你只想要表頭到第一行數(shù)據(jù),那么10萬的數(shù)據(jù)也必須從頭掃描到尾部。
2.修改SheetContentsHandler接口源碼 或者繼承DefaultHandler
在endElement()方法中.如果讀取到元素==row.那么直接拋出一個(gè)異常結(jié)束sax解析。
