2017-02-18 1 views
-1

나는 스프레드 시트 (xls, csv)로 주어진 데이터를 처리해야하는 특이한 문제입니다. 내 자바 프로그램에서 그 데이터를 사용하고있을 것이다.Excel 읽기 - 읽는 동안 여러 열 값 수정 - Java, 논리

스프레드 시트 데이터는 다른 곳에서 생성되며 제어 할 수 없습니다. 여기에는 시스템 고유의 서식이있는 몇 가지 열이 있는데이 각각을 원하는 형식으로 변환하는 방법에 대해서는 "프로그래밍 방식으로"을 선택하는 옵션이 있어야합니다. 내 프로젝트에서

간단한 방법은이 시점에서

a) read the spreadsheet and apply transformations in place while reading. 
b) read each row as a java object and iterate over this list and do the modifications 
c) use some in-memory DB like H2 and apply some **user-defined functions** (dont know how) either while reading into the memory or transforming it later. 

로했을 것이다, 난 정말 모든 3 가지 옵션을 상세히 파악이 없습니다. 그래서 애매 모호함을 변명하십시오.

다른 옵션이 있습니까? 그리고 더 중요한 것은 5 개 이상의 열을 변환해야하는 수천 개의 레코드가 있기 때문에 가장 빠른 방법은 무엇입니까?

답변

0

먼저 파일이 엑셀인지 스프레드 시트인지 확인할 수 있습니다. 엑셀 파일을 사용하면 아파치 포이를 사용할 수 있습니다.이 파일은 Excel 파일을 구문 분석하는 데 매우 유용합니다.이 경우 읽을 때 변환을 적용 할 수 있습니다.

스프레드 시트는 쉼표로 구분되어 있으므로 split 함수를 사용하고 구문 분석 할 수 있습니다.이 경우 읽기 중에 변형을 적용 할 수는 없지만 배열에서 수집하고 동일한 작업을 수행 할 수는 있습니다.

성능은 코드를 최적화하는 방법에 따라 달라집니다. Java 8 Streams를 사용하여 줄을 스트리밍하고 코드를 효과적으로 사용할 수 있습니다.