Java에서 Excel의 열 순서 변경

7342 단어 javafreeapiexcel
Excel에서는 보다 체계적으로 데이터를 표시하기 위해 특정 열을 워크시트의 다른 위치로 이동해야 하는 경우가 있습니다. 데이터를 수동으로 자르고 붙여넣는 대신 이 기사에서는 Java용 Free Spire.XLS를 사용하여 Excel에서 프로그래밍 방식으로 열 순서를 변경하는 방법을 공유합니다.

가져오기 종속성(2가지 방법)



1# free library을 다운로드하고 압축을 푼 다음 Spire.Xls.jar 파일을 종속성으로 프로젝트에 추가합니다.

2# pom.xml에 다음 구성을 추가하여 maven 프로젝트에 jar 종속성을 직접 추가합니다.

<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.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>


샘플 코드



열 순서를 변경하려면 먼저 Workbook.getWorksheets().get() 메서드를 사용하여 대상 워크시트를 가져온 다음 int 배열에 새 열 순서를 지정해야 합니다. 다음으로 임시 시트를 생성하고 임시 시트에서 대상 시트로 열을 복사하고 새 순서로 저장해야 합니다. 전체 샘플 코드는 아래와 같습니다.

import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class RearrangeColumns {

    public static void main(String[] args) {

        //Create a Workbook object
        Workbook workbook = new Workbook();

        //Load an Excel file
        workbook.loadFromFile( "C:\\Files\\test.xlsx");

        //Get the first worksheet
        Worksheet worksheet = workbook.getWorksheets().get(0);

        //Set the new column order (the column index starts from 0)
        int[] newColumnOrder = new int[]{1, 0, 4, 2, 3};

        //Add a temporary worksheet
        Worksheet newSheet = workbook.getWorksheets().add("temp");

        //Copy data from the first worksheet to the temporary sheet
        newSheet.copyFrom(worksheet);

        //Loop through the newColumnOrder array
        for (int i = 0; i < newColumnOrder.length; i++) {

            //Copy the column from the temporary sheet to the first sheet
            newSheet.getColumns()[newColumnOrder[i]].copy(worksheet.getColumns()[i],true,true);

            //Set the width of a certain column the first sheet to that of the temporary sheet
            worksheet.getColumns()[i].setColumnWidth(newSheet.getColumns()[newColumnOrder[i]].getColumnWidth());
        }

        //Remove temporary sheet
        workbook.getWorksheets().remove(newSheet);

        //Save the workbook to another Excel file
        workbook.saveToFile("MoveColumn.xlsx", FileFormat.Version2016);
    }
}


좋은 웹페이지 즐겨찾기