|
@@ -69,22 +69,23 @@ public abstract class XlsxHandler extends DefaultHandler {
|
|
* @throws Exception
|
|
* @throws Exception
|
|
*/
|
|
*/
|
|
public void processOneSheet(String filePath, int sheetId) throws Exception {
|
|
public void processOneSheet(String filePath, int sheetId) throws Exception {
|
|
- OPCPackage pkg = OPCPackage.open(filePath);
|
|
|
|
- XSSFReader r = new XSSFReader(pkg);
|
|
|
|
- SharedStringsTable sst = r.getSharedStringsTable();
|
|
|
|
-
|
|
|
|
- XMLReader parser = XMLReaderFactory.createXMLReader();
|
|
|
|
- this.sst = sst;
|
|
|
|
- parser.setContentHandler(this);
|
|
|
|
-
|
|
|
|
|
|
+ OPCPackage pkg = null;
|
|
InputStream is = null;
|
|
InputStream is = null;
|
|
try {
|
|
try {
|
|
|
|
+ pkg = OPCPackage.open(filePath);
|
|
|
|
+ XSSFReader r = new XSSFReader(pkg);
|
|
|
|
+ SharedStringsTable sst = r.getSharedStringsTable();
|
|
|
|
+
|
|
|
|
+ XMLReader parser = XMLReaderFactory.createXMLReader();
|
|
|
|
+ this.sst = sst;
|
|
|
|
+ parser.setContentHandler(this);
|
|
is = r.getSheet("rId" + sheetId);
|
|
is = r.getSheet("rId" + sheetId);
|
|
sheetIndex++;
|
|
sheetIndex++;
|
|
InputSource sheetSource = new InputSource(is);
|
|
InputSource sheetSource = new InputSource(is);
|
|
parser.parse(sheetSource);
|
|
parser.parse(sheetSource);
|
|
} finally {
|
|
} finally {
|
|
IOUtils.closeQuietly(is);
|
|
IOUtils.closeQuietly(is);
|
|
|
|
+ IOUtils.closeQuietly(pkg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -96,26 +97,31 @@ public abstract class XlsxHandler extends DefaultHandler {
|
|
* @throws Exception
|
|
* @throws Exception
|
|
*/
|
|
*/
|
|
public void process(String filePath) throws Exception {
|
|
public void process(String filePath) throws Exception {
|
|
- OPCPackage pkg = OPCPackage.open(filePath);
|
|
|
|
- XSSFReader r = new XSSFReader(pkg);
|
|
|
|
- SharedStringsTable sst = r.getSharedStringsTable();
|
|
|
|
-
|
|
|
|
- XMLReader parser = XMLReaderFactory.createXMLReader();
|
|
|
|
- this.sst = sst;
|
|
|
|
- parser.setContentHandler(this);
|
|
|
|
-
|
|
|
|
- Iterator<InputStream> sheets = r.getSheetsData();
|
|
|
|
- while (sheets.hasNext()) {
|
|
|
|
- curRow = 0;
|
|
|
|
- sheetIndex++;
|
|
|
|
- InputStream sheet = null;
|
|
|
|
- try {
|
|
|
|
- sheet = sheets.next();
|
|
|
|
- InputSource sheetSource = new InputSource(sheet);
|
|
|
|
- parser.parse(sheetSource);
|
|
|
|
- } finally {
|
|
|
|
- IOUtils.closeQuietly(sheet);
|
|
|
|
|
|
+ OPCPackage pkg = null;
|
|
|
|
+ try {
|
|
|
|
+ pkg = OPCPackage.open(filePath);
|
|
|
|
+ XSSFReader r = new XSSFReader(pkg);
|
|
|
|
+ SharedStringsTable sst = r.getSharedStringsTable();
|
|
|
|
+
|
|
|
|
+ XMLReader parser = XMLReaderFactory.createXMLReader();
|
|
|
|
+ this.sst = sst;
|
|
|
|
+ parser.setContentHandler(this);
|
|
|
|
+
|
|
|
|
+ Iterator<InputStream> sheets = r.getSheetsData();
|
|
|
|
+ while (sheets.hasNext()) {
|
|
|
|
+ curRow = 0;
|
|
|
|
+ sheetIndex++;
|
|
|
|
+ InputStream sheet = null;
|
|
|
|
+ try {
|
|
|
|
+ sheet = sheets.next();
|
|
|
|
+ InputSource sheetSource = new InputSource(sheet);
|
|
|
|
+ parser.parse(sheetSource);
|
|
|
|
+ } finally {
|
|
|
|
+ IOUtils.closeQuietly(sheet);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ } finally {
|
|
|
|
+ IOUtils.closeQuietly(pkg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|