public void process(File file) throws Exception {
OPCPackage pkg = OPCPackage.open(file);
XSSFReader r = new XSSFReader(pkg);
SharedStringsTable sst = r.getSharedStringsTable(); XMLReader parser = fetchSheetParser(sst);
records.clear(); XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) r.getSheetsData();
InputStream sheet = null;
InputSource sheetSource = null;
while (iter.hasNext()) {
curRow = 0;
sheetIndex++;
sheet = iter.next();
String sheetName = iter.getSheetName();
System.out.println(sheetName);
try {
sheetSource = new InputSource(sheet);
parser.parse(sheetSource);
} finally {
if (null != sheet) {
sheet.close();
}
}
}
//作内存清理
pkg = null;
r = null;
sst = null;
parser = null;
iter = null;
sheetSource = null;
}public XMLReader fetchSheetParser(SharedStringsTable sst)
throws SAXException {
XMLReader parser = XMLReaderFactory
.createXMLReader("org.apache.xerces.parsers.SAXParser");
this.sst = sst;
parser.setContentHandler(this);
return parser;
}
解析EXCEL2007
我导入某个EXCEL模版时
运行到parser.parse(sheetSource);报错!
java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
但是我导入其他2007模版时就没有问题,为什么?
Excel
OPCPackage pkg = OPCPackage.open(file);
XSSFReader r = new XSSFReader(pkg);
SharedStringsTable sst = r.getSharedStringsTable(); XMLReader parser = fetchSheetParser(sst);
records.clear(); XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) r.getSheetsData();
InputStream sheet = null;
InputSource sheetSource = null;
while (iter.hasNext()) {
curRow = 0;
sheetIndex++;
sheet = iter.next();
String sheetName = iter.getSheetName();
System.out.println(sheetName);
try {
sheetSource = new InputSource(sheet);
parser.parse(sheetSource);
} finally {
if (null != sheet) {
sheet.close();
}
}
}
//作内存清理
pkg = null;
r = null;
sst = null;
parser = null;
iter = null;
sheetSource = null;
}public XMLReader fetchSheetParser(SharedStringsTable sst)
throws SAXException {
XMLReader parser = XMLReaderFactory
.createXMLReader("org.apache.xerces.parsers.SAXParser");
this.sst = sst;
parser.setContentHandler(this);
return parser;
}
解析EXCEL2007
我导入某个EXCEL模版时
运行到parser.parse(sheetSource);报错!
java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
但是我导入其他2007模版时就没有问题,为什么?
Excel
解决方案 »
- 关于Hibernate对大型文本的读写
- 数据库关闭和连接资源问题
- java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
- 这个参数为什么取不到?
- struts中onchange()问题????
- 给分:江湖告急。。求SQL Server 2000 Driver for JDBC Service Pack 4 驱动程序
- forward 和redirect的区别??
- 装好了OpenLDAP,但不会加数据,急
- tomcat配置文件,拜托各位大下拉
- Weblogic7 +JB7,ejb问题!(嫌分不够再加)
- hiebernate出错
- j2EE 服务端频繁读取大量文件速度慢,且容易出现out of memory: heap space
你表格的宽度定义的也许不够长