我尝试读取包含80K细胞的Android XLS文件,但它会出现以下错误信息:致命异常:主要 java.lang.OutOfMemoryError如何在android中加载大型xls文件?
我应该怎么才能成功地读取xls文件做?
由于提前, Anestis
public class ReadExcelFile
{
ArrayList list = new ArrayList();
public ReadExcelFile()
{
Workbook workbook1 = null;
WorkbookSettings s = null;
InputStream excelContent = null;
try {
excelContent = this.getClass().getResourceAsStream("/com/product/sopho/lexiko.xls");
s = new WorkbookSettings();
s.setUseTemporaryFileDuringWrite(true);
workbook1 = Workbook.getWorkbook(excelContent,s);
Sheet sheet = workbook1.getSheet(0);
ExcelMap(sheet);
ExcelKeyList(sheet);
} catch(Exception e) {
} finally {
if(workbook1 != null) {
workbook1.close();
}
if(excelContent != null) {
try {
excelContent.close();
} catch (IOException ex) {}
}
}
}
private void ExcelKeyList(Sheet sheet)
{
for (int i=0; i<80001; i++)
{
list.add(sheet.getCell(0,i).getContents());
}
}
public ArrayList getExcelKeyList()
{
return list;
}
}
+0
btw。如果OutOfMemory在ExcelKeyList中,那么你可以使用“pager”来解决它:改变函数,这样你可以要求1000个单元的块,而不是一次存储整个表 –