2013-12-22 2 views
3

안녕하세요, 1000 행의 엑셀 시트를 성공적으로 읽을 수 있습니다. 그러나 행 수가 5000 개를 초과하면 오류가 발생합니다. 그 메모리 소비가 줄어 듭니다 그래서 나는 덩어리에서 Excel 파일을 읽을 수 있도록 내가 거기 어쨌든 전체 memory.Is에서 Excel 파일을로드하고 있기 때문에파일을 엑셀 형식으로 읽는 방법 (예 : .xlsx)을 청크, 즉 Android 행 응용 프로그램에서 행 5,000 개 그룹으로?

java.lang.OutOfMemoryError: [memory exhausted] at dalvik.system.NativeStart.main(Native Method)

오류가 온다? "Android 용 Aspose Cells"라이브러리를 사용하여 Excel 파일을 읽습니다. 도와주세요.

+0

정확히 * 필수 * 무엇입니까? 그들을 섬기고 있니? Excel 파일로 처리 *? – EJP

+0

[Apache POI] (http://poi.apache.org/spreadsheet/index.html)를보십시오. 그것의 순수 자바 엑셀 API와 스트리밍을 지원합니다. Android에서 시도하지 않았습니까? – bidifx

+0

@EJP - 행을 읽고 비교를 위해 사용하고 싶습니다. 하지만 필자는 Excel 파일을 읽을 수 없습니다 (응용 프로그램은 더 작은 크기의 파일을 필요로 할 때 완벽하게 작동합니다). – Yogesh

답변

1

.xlsx 파일은 실제로 xml 기반 압축 파일이므로 레거시 .xls 형식보다 작은 디스크 공간을 차지합니다. 파일 확장자를 .zip으로 변경하여 내부를 확인할 수 있습니다.

API가 수행하는 작업은 먼저 파일의 압축을 푼 다음 읽는 것입니다. 지퍼를 푸는 동안 메모리가 소모되었을 수 있습니다.

크기가 10MB 인 경우 실제로 압축되지 않은 메모리 크기는 1Gb를 초과 할 수 있습니다. 안드로이드에 시각적 메모리를 추가하여 핸드셋을 구성 할 수 있습니다.

큰 파일을 하나의 폴더에서 PC의 작은 파일 조각으로 잘라낸 다음 응용 프로그램으로 폴더를 처리하십시오.

+0

@EJP - Java 개발에 초보자입니다. 작은 파일에서 파일을 자르는 방법을 알려주십시오. 감사합니다. – Yogesh