Carl Smith
Carl Smith
Читать 2 минуты

Изменить порядок столбцов в Excel в Java

В Excel могут быть случаи, когда вам нужно переместить определенный столбец в другое место на листе, чтобы представить данные в более упорядоченном виде. Вместо того, чтобы вручную вырезать и вставлять данные, в этой статье рассказывается, как программно изменить порядок столбцов в Excel с помощью Free Spire.XLS for Java.

Зависимость от импорта (два метода)
Метод 1. Загрузите Free Spire.XLS for Java и разархивируйте его, затем добавьте файл Spire.Xls.jar в свой проект в качестве зависимости.

Метод 2. Вы также можете добавить зависимость jar в проект maven, добавив следующие конфигурации в pom.xml.

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) {

//Создайте объект Workbook
Workbook workbook = new Workbook();

//Загрузите файл Excel
workbook.loadFromFile( "test.xlsx");

//Получить первый рабочий лист
Worksheet worksheet = workbook.getWorksheets().get(0);

//Установите новый порядок столбцов (индекс столбца начинается с 0)
int[] newColumnOrder = new int[]{1, 3, 0, 2};

//Добавить временный лист
Worksheet newSheet = workbook.getWorksheets().add("temp");

//Скопируйте данные с первого рабочего листа на временный лист
newSheet.copyFrom(worksheet);

//Перебрать массив newColumnOrder
for (int i = 0; i < newColumnOrder.length; i++) {

//Скопируйте столбец с временного листа на первый лист
newSheet.getColumns()[newColumnOrder[i]].copy(worksheet.getColumns()[i],true,true);

//Установите ширину определенного столбца на первом листе на ширину временного листа
worksheet.getColumns()[i].setColumnWidth(newSheet.getColumns()[newColumnOrder[i]].getColumnWidth());
}

//Удалить временный лист
workbook.getWorksheets().remove(newSheet);

//Сохраните книгу в другой файл Excel
workbook.saveToFile("MoveColumn.xlsx", FileFormat.Version2016);
}
}
Image for post
4 просмотра
Добавить
Еще
Carl Smith
Подписаться