programing

Apache POI를 사용하여 CSV 데이터 가져오기

itsource 2023. 8. 15. 20:38
반응형

Apache POI를 사용하여 CSV 데이터 가져오기

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

Apache POI는 CSV 파일을 호출하도록 설계되지 않았습니다.CSV 파일은 Excel에서 열 수 있지만 Excel에는 자동 가져오기를 수행하는 자체 리더가 있습니다.이는 CSV에 다음이 있다고 가정합니다..csv대신에.txt접미사만약 그것이 그것을 가지고 있습니다..txt접미사, a로 저장.csv.그러면 CSV를 마우스 오른쪽 버튼으로 클릭하고 Excel로 열기만 하면 됩니다.먼저 CSV를 Excel로 가져왔습니다.

나는 당신이 txt 파일의 데이터를 엑셀 파일로 구문 분석하기를 원한다고 생각합니다.그런 경우에는 POI가 전혀 의도하지 않은 작업을 수행하도록 하는 대신 SuperCSV와 같은 라이브러리를 사용하는 것이 좋습니다.데이터를 구문 분석할 때 선택한 빈, 지도 또는 목록에 모두 로드되고 선택한 형식으로 다시 쓸 수 있습니다..csv파일을 작성하거나 JDBC-ODBC Bridge 또는 Apache POI를 사용하여 직접 작성합니다..XLS서식을 정하다단계를 추가하지만 데이터를 완전히 제어할 수 있습니다.

SuperCSV는 Apache2 라이센스를 제공하므로 이 라이센스를 사용하여 수행하는 모든 작업에 적합합니다.

아니면 그냥 그것을 사용하세요.splitJava에서 작동하여 CSV를 어레이로 구문 분석하고 어레이를 로드합니다..xlsPOI 포함.

CSV 파일에는 apache commons-csv를 사용합니다.다음 종속성으로 pom.xml 업데이트

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.5</version>
</dependency>

유용한 좋은 예는 다음에서 찾을 수 있습니다 - 여기를 클릭하십시오.

우리는 파일 확장자를 기반으로 자바 코드를 작성합니다.여기서 우리는 .csv 확장을 다루고 있으며, 이것을 처리하기 위한 Apache POI 코드가 있습니다.우리는 컨텐츠를 분할하여 Array에 저장한 후 라인을 따라 사용합니다.

CSVParser parser = new CSVParser(new FileReader("D:/your_file.csv"), CSVFormat.DEFAULT);
List<CSVRecord> list = parser.getRecords();
for (CSVRecord record : list) {
    String[] arr = new String[record.size()];
    int i = 0;
    for (String str : rec) {
        arr[i++] = str;
    }
}  
parser.close();    

관련 메이븐 종속성:

<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.2</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.5</version>
</dependency>
<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>4.2</version>
</dependency>

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

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

하한이 1인 2차원 배열의 시트 범위를 채웁니다.

이 경우 CSV 파일을 먼저 배열로 읽은 다음 위와 같은 구문을 사용하여 워크시트에 배치합니다.

스탠 스콧

언급URL : https://stackoverflow.com/questions/721859/importing-csv-data-with-apache-poi

반응형