2014-02-21 2 views
0

현재 일부 프로세스 후 xls 파일에서 xlsm 파일로 데이터를 자동 전송하기 위해 POI POI를 사용하고 있습니다. 나는 강한 실행 시간 제한을 가지고 있으며 XSSFCellStyle의 setter는 매우 많은 시간을 소비합니다.XSSFCell 스타일이 느린 것 같습니다

사실 나는 수천 개의 셀을 전송할 수있는 파일과 boder (SetBorder & SetBorder 색상)의 파일이 1 개의 셀에서 각각 실행될 때 3ms에서 5ms가 소요됩니다. 내 맥락에서 1300 수천 실행하는 데 30 초 걸립니다.

JProfiler의 그래프에서이 메소드에 소요되는 대부분의 시간이 "대기 중"상태임을 알 수 있습니다.

정상적인가요?

감사합니다.

+0

정상적이지 않습니다. 우리는 당신의 코드를 볼 필요가 있습니다. 하지만 일반적으로 POI를 사용했을 때 가능한 한 모듈 식 (OOP)으로 스타일을 만들려고했습니다. 결정 구조를 통해 결정하는 것이 아니라 완전한 셀 스타일을 가진 클래스를 설정하십시오. – woodlumhoodlum

+0

셀 스타일은 통합 문서 수준에 있으며 동일한 스타일을 공유하는 셀간에 다시 사용해야합니다. 고유 한 스타일의 셀당 하나의 셀 스타일 만 만들고 셀당 하나가 아닌 셀 스타일을 만드십시오! – Gagravarr

+0

감사합니다. 내 알고리즘을 재 작업해야한다고 생각합니다. – Wodric

답변

0

예를 들어 org.apache.poi.xssf.model.StylesTable.putStyle(XSSFCellStyle)에서 xfs을 두 번 찾으려고합니다.

ArrayList을 사용합니다.

세포가 많을수록이 조작이 더 느립니다.

할 수있는 경우 많은을 피하려고 시도합니다.

관련 문제