2009-04-06 11 views
11

Apache POI를 사용하여 CSV 데이터를 효율적으로 가져올 수 있습니까? Excel 스프레드 시트에 저장하려는 매우 큰 CSV 파일이있는 경우 셀 단위로 가져 오는 것이 가져 오는 가장 좋은 방법이라고 생각하지 않습니다 ...?Apache POI로 CSV 데이터 가져 오기

답변

1

엑셀 스프레드 시트에 정보를 추가하는 가장 효율적인 방법은 배열을 사용하는 것입니다. 이 코드 :

Sheets(1).Range("A1").Resize(uBound(myArray),uBound(myArray,2)).Value = myArray 

은 내가 CSV 먼저 배열로 파일을 읽은 다음 구문을 사용, 하한이 상황 1.

하는 두 차원 배열에서 시트 범위를 채 웁니다 그것을 워크 시트에 놓으십시오.

스탠 스콧

15

Apache POI는 CSV 파일을 호출하지 못했습니다. Excel에서 CSV 파일을 열 수 있지만 Excel에는 자동 가져 오기를 수행하는 자체 판독기가 있습니다. 이것은 CSV에 .txt 접미사 대신 .csv가 있다고 가정합니다. 접미사가 .txt 인 경우 .csv로 저장합니다. CSV 및 Open With Excel에서 마우스 오른쪽 버튼을 클릭하기 만하면됩니다. Presto, CSV는 Excel로 가져 왔습니다.

나는 당신이 엑셀 파일로 txt 파일에서 데이터를 분석하고자하는 것을 가정하고있다. 그럴 경우 POI가 수행하도록 설계된 적이없는 라이브러리를 사용하는 대신 라이브러리 liKe SuperCSV을 사용하는 것이 좋습니다. 데이터를 파싱 할 때 Bean, Map 또는 원하는 목록에 모두로드 한 다음 .csv 파일로 선택한 형식으로 다시 쓰거나 JDBC-ODBC Bridge 또는 Apache POI를 사용하여 작성할 수 있습니다. 그것은 .XLS 형식으로 직접. 추가 단계를 추가하지만 데이터를 완전히 제어 할 수 있습니다. 당신이 그것으로해야 할 선택이 무엇이든 좋은해야하므로

는 SuperCSV는 아파치 라이센스를 전달합니다.

하거나 자바에 .split() 함수를 사용하여 배열에 CSV를 구문 분석하고 POI와 .XLS에 배열을로드합니다.

관련 문제