Я пытаюсь прочитать 10 строк из 1 миллиона записей в листе Excel (.xlsx):синтаксического анализа часть XLSX файла с помощью пои xssf и саксофон анализатор
FileInputStream myFile = new FileInputStream(file);
OPCPackage pkg = OPCPackage.open(myFile);
XSSFReader reader = new XSSFReader(pkg);
MySheetContentHandler sheetHandler = new MySheetContentHandler();
StylesTable styles = reader.getStylesTable();
ReadOnlySharedStringsTable sharedStrings = new ReadOnlySharedStringsTable(pkg);
ContentHandler handler = new XSSFSheetXMLHandler(styles, sharedStrings, sheetHandler, true);
XMLReader parser = XMLReaderFactory.createXMLReader();
parser.setContentHandler(handler);
parser.parse(new InputSource(reader.getSheetsData().next()));
pkg.close();
И MySheetContentHandler:
@Override
public void cell(String cellReference, String formattedValue) {
getRowList.add(formattedValue);
if (count == 0) {
columnsId.add(String.valueOf(columnCount++));
}
}
@Override
public void endRow() {
if (myNewList.size() < maxRecord) {
myNewList.add(getRowList);
}
}
@Override
public void headerFooter(String arg0, boolean arg1, String arg2) {
}
@Override
public void startRow(int rowNum) {
getRowList = new ArrayList<String>();
if (rowNum == 0) {
count = 0;
} else {
count++;
}
}
При вызове метода parser.parse(new InputSource(reader.getSheetsData().next()));
весь файл анализируется, и требуется время, все, что я хочу, - это проанализировать только первые 10 строк и затем прекратить разбор.
Я нашел хороший ответ в этой ссылке [стоп-парсера SAX] [1] [1]: http://stackoverflow.com/questions/1345293/how-to-stop-parsing-xml -document-с-саксофона-на-любой-время –