Java에서 Excel을 CSV로 또는 그 반대로 변환

13959 단어 excelcsvjava
CSV 파일은 값이 쉼표로 구분되는 구분된 텍스트 파일입니다. Microsoft Excel 및 Google 스프레드시트와 같은 대부분의 스프레드시트 프로그램에서 사용할 수 있습니다. 경우에 따라 Excel과 CSV 간에 변환을 수행해야 할 수도 있습니다. 이 기사에서는 Spire.XLS for Java 라이브러리를 사용하여 Java에서 Excel을 CSV로, CSV를 Excel로 변환하는 방법을 설명합니다.

종속성 추가



우선 Java 라이브러리용 Spire.XLS를 Java 프로젝트에 포함하는 데 필요한 종속성을 추가해야 합니다.
official website에서 라이브러리의 jar를 다운로드하거나 Maven 기반 프로젝트의 pom.xml 파일에 다음 코드를 추가하여 Maven에서 설치할 수 있습니다.

<repositories>    
    <repository>    
        <id>com.e-iceblue</id>    
        <name>e-iceblue</name>    
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>    
    </repository>    
</repositories>    
<dependencies>    
    <dependency>    
        <groupId>e-iceblue</groupId>    
        <artifactId>spire.xls</artifactId>    
        <version>4.12.2</version>    
    </dependency>    
</dependencies>


Java를 사용하여 Excel을 CSV로 변환



요구 사항에 따라 Excel 워크시트를 CSV로 변환하거나 여러 워크시트를 별도의 CSV 파일로 변환할 수 있습니다.

다음은 Excel 워크시트를 CSV로 변환하는 단계입니다.
  • Workbook 클래스의 인스턴스를 만듭니다.
  • Workbook.loadFromFile() 메서드를 사용하여 Excel 파일을 로드합니다.
  • Workbook.getWorksheets().get(index) 메소드를 사용하여 색인별로 원하는 워크시트를 가져옵니다.

  • XlsWorksheet.saveToFile(String fileName, String separator, Charset encoding) 메서드를 사용하여 워크시트를 CSV로 저장합니다. 아래에서 오버로드된 다른 두 가지 방법 중 하나를 선택할 수도 있습니다.

    ㅏ. saveToFile(문자열 파일 이름, 문자열 구분자)

    비. saveToFile(문자열 파일 이름, 문자열 구분 기호, 부울 retainHiddenData)


  • import com.spire.xls.Workbook;
    import com.spire.xls.Worksheet;
    
    import java.nio.charset.Charset;
    
    public class ConvertAWorksheetToCsv {
        public static void main(String []args){
            //Create an instance of Workbook class
            Workbook workbook = new Workbook();
            //Load an Excel file
            workbook.loadFromFile("Sample.xlsx");
    
            //Get the first worksheet
            Worksheet sheet = workbook.getWorksheets().get(0);
    
            //Save the worksheet as CSV
            sheet.saveToFile("ExcelToCSV.csv", ",", Charset.forName("UTF-8"));
        }
    }
    




    위의 코드는 Excel 파일의 첫 번째 워크시트만 CSV로 저장합니다. Excel 파일의 여러 워크시트를 별도의 CSV 파일로 저장하려면 다음 코드를 사용하십시오.

    import com.spire.xls.Workbook;
    import com.spire.xls.Worksheet;
    
    import java.nio.charset.Charset;
    
    public class ConvertMultipleWorksheetsToCsv {
        public static void main(String []args) {
            //Create an instance of Workbook class
            Workbook workbook = new Workbook();
            //Load an Excel file
            workbook.loadFromFile("Sample.xlsx");
    
            //Loop through the worksheets in the Excel file
            for (int i = 0; i < workbook.getWorksheets().getCount(); i++) {
                Worksheet sheet = workbook.getWorksheets().get(i);
                //Save each worksheet as a separate CSV
                sheet.saveToFile("Output/ExcelToCSV_" + i + ".csv", ",", Charset.forName("UTF-8"));
            }
        }
    }
    


    Java를 사용하여 CSV를 Excel로 변환



    다음은 CSV를 Excel로 변환하는 단계입니다.
  • Workbook 클래스의 인스턴스를 만듭니다.
  • Workbook.loadFromFile(String fileName, String separator, int row, int column) 메서드를 사용하여 CSV 파일을 로드합니다.
  • CSV 파일의 워크시트를 반복합니다.
  • 루프 내에서 Worksheet.getAllocatedRange() 메서드를 사용하여 현재 워크시트의 사용된 범위에 액세스합니다. 그런 다음 XlsRange.setIgnoreErrorOptions() 메서드를 사용하여 오류 무시 옵션을 설정합니다. 그런 다음 XlsRange.autoFitColumns() 및 XlsRange.autoFitRows() 메서드를 사용하여 열과 행을 자동 맞춤합니다.
  • Workbook.saveToFile(문자열 파일 이름, ExcelVersion 버전) 메서드를 사용하여 CSV를 Excel에 저장합니다.

  • import com.spire.xls.*;
    
    import java.util.EnumSet;
    
    public class ConvertCsvToExcel {
        public static void main(String []args) {
            //Create an instance of Workbook class
            Workbook workbook = new Workbook();
    
            //Load a CSV file
            workbook.loadFromFile("ExcelToCSV.csv", ",", 1, 1);
    
            //Loop through the worksheets in the CSV file
            for (int i = 0; i < workbook.getWorksheets().getCount(); i++)
            {
                Worksheet sheet = workbook.getWorksheets().get(i);
                //Access the used range in each worksheet
                CellRange usedRange = sheet.getAllocatedRange();
                //Ignore errors when saving numbers in the used range with text
                usedRange.setIgnoreErrorOptions(EnumSet.of(IgnoreErrorType.NumberAsText));
                //Autofit columns and rows
                usedRange.autoFitColumns();
                usedRange.autoFitRows();
            }
    
            //Save the result file
            workbook.saveToFile("CSVToExcel.xlsx", ExcelVersion.Version2013);
        }
    }
    




    더보기



    Product Page | Documentation | Forum |

    좋은 웹페이지 즐겨찾기