3

Java 自定义Excel数据排序 - E-iceblue

 2 years ago
source link: https://www.cnblogs.com/Yesi/p/16695776.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

通常,我们可以在Excel中对指定列数据执行升序或者降序排序,排序时可依据单元格中的数值、单元格颜色、字体颜色或图标等。在需要自定义排序情况下,我们也可以自行根据排序需要编辑数据排列顺序。本文,将通过Java应用程序来实现如何自定义排序。

1.引入jar包

使用jar包:Spire.Xls.jar version: 12.8.4

导入方法1:手动下载jar到本地,解压,然后找到lib文件夹下的Spire.Xls.jar文件。然后在IDEA中打开“Project Structure”界面,执行如图步骤手动导入:

706090-20220915104118428-1738594673.jpg

导入方法2:Maven仓库下载,如下配置pom.xml文件:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls</artifactId>
        <version>12.8.4</version>
    </dependency>
</dependencies>

2.自定义排序

设置自定义排序时,可参考如下步骤来执行:

  • 创建Workbook类的对象,并调用Workbook.loadFromFile(String fileName)方法加载Excel文档。
  • 通过Workbook.getWorksheets().get(int Index)方法获取指定工作表。
  • 通过Worksheet.getCellRange(String name)方法获取指定单元格区域。
  • 使用Workbook.getDataSorter().getSortColumns().add(int Key, String[] customSortOrder)方法自定义排序。
  • 通过Workbook.getDataSorter().sort(CellRange range)方法应用数据自定义排序的单元格区域范围。
  • 最后,使用Workbook.saveToFile(String fileName, ExcelVersion version)方法保存文件。
import com.spire.xls.*;

public class CustomSorting {
    public static void main(String[] args) {
        //加载Excel文档
        Workbook workbook = new Workbook();
        workbook.loadFromFile("test.xlsx");

        //获取第一张工作表
        Worksheet worksheet = workbook.getWorksheets().get(0);

        //获取单元格区域
        CellRange range = worksheet.getCellRange("A2:I16");

        //指定需要排序的列索引,并自定义排序
        workbook.getDataSorter().getSortColumns().add(4, new String[]
                {"DE","OLB", "WR", "OL", "RB","DT","TE","LB","CB","S","VB","G"}
        );

        //应用排序范围
        workbook.getDataSorter().sort(range);

        //保存文档
        workbook.saveToFile("CustomSorting.xlsx",ExcelVersion.Version2010);
    }
}
706090-20220915104222916-132199173.png

—END—


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK