一、基于eventusermodel的excel解析工具类
这一部分和网上大部分的差不多,变化在二和三
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xssf.eventusermodel.ReadOnlySharedStringsTable;
import org.apache.poi.xssf.eventusermodel.XSSFReader;
import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler;
import org.apache.poi.xssf.model.StylesTable;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
public class ImportantUtil{
private static final Logger logger = LogManager.getLogger(ImportantUtil.class);
public ImportantUtil(ISheetContentHandler handler) {
contentHandler=handler;
}
private ISheetContentHandler contentHandler = null;
private List<Object[]> data=new ArrayList<Object[]>();
public List<Object[]> parse(InputStream stream)throws InvalidFormatException, IOException, ParseException {
return parse(stream, 1);
}
public synchronized List<Object[]> parse(InputStream stream, int sheetId)throws InvalidFormatException, IOException, ParseException
{
data.clear();
OPCPackage pkg = OPCPackage.open(stream);
try {
XSSFReader reader;
try {
reader = new XSSFReader(pkg);
} catch (