首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何使用C#代码在 Excel 中对数据进行排序

如何使用C#代码在 Excel 中对数据进行排序

原创
作者头像
用户12401097
发布于 2026-10-08 14:50:45
发布于 2026-10-08 14:50:45
290
举报

在 Excel 中对数据进行排序是一项常用的数据处理操作,可以帮助用户更清晰地组织和分析数据。通过按照特定条件重新排列数据,例如字母顺序、数值大小或日期先后,用户可以更方便地查看数据中的趋势、规律和异常情况。本文将介绍如何使用 C# 对 Excel 中的数据进行排序。

准备开发环境

在开始之前,需要先为 .NET 项目添加相关的 DLL 文件作为引用。你可以通过官网链接下载所需的 DLL 文件,或者直接通过 NuGet 进行安装。

代码语言:C#
复制
PM> Install-Package Spire.XLS

使用 C# 对 Excel 单列数据进行排序

在 Excel 中对单列数据进行排序,可以按照升序或降序快速整理数据,方便后续分析。不过,如果只对单列进行排序,而不处理其他相关列,可能会导致原本对应的数据出现错位。因此,在实际操作时需要根据数据结构选择合适的排序范围。

在 C# 中,可以通过 Workbook.DataSorter.SortColumns.Add(int key, SortComparisonType sortComparisonType, OrderBy orderBy) 方法设置排序条件,包括指定需要排序的列、比较方式以及排序顺序(升序或降序)。然后,可以使用 Workbook.DataSorter.Sort(CellRange range) 方法对指定的数据范围执行排序。

具体步骤如下:

  1. 创建一个 Workbook 对象。
  2. 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  3. 通过 Workbook.Worksheets[index] 属性获取指定的工作表。
  4. 使用 Worksheet.Range 属性获取需要排序的数据列。
  5. 使用 Workbook.DataSorter.SortColumns.Add() 方法为选定列设置排序条件。
  6. 使用 Workbook.DataSorter.Sort() 方法执行排序。
  7. 将处理后的工作簿保存为新的 Excel 文件。

完整示例代码如下:

代码语言:C#
复制
using Spire.Xls;

namespace SortMultipleColumns
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个新的工作簿
            Workbook workbook = new Workbook();

            // 加载 Excel 文件
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");

            // 获取指定的工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 获取需要排序的单元格区域(多个列)
            CellRange cellRange = sheet.Range["A1:F6"];

            // 按降序对指定列中的数据进行排序
            workbook.DataSorter.SortColumns.Add(5, SortComparsionType.Values, OrderBy.Descending);

            // 对指定的单元格区域执行排序
            workbook.DataSorter.Sort(cellRange);

            // 保存工作簿
            workbook.SaveToFile("SortMultipleColumns.xlsx", ExcelVersion.Version2013);

            // 释放资源
            workbook.Dispose();
        }
    }
}

使用 C# 对 Excel 多列数据进行排序

当需要对包含多项关联信息的数据表进行整理时,可以同时对多个列进行排序。这样能够在调整数据顺序的同时,保持各列之间的对应关系,避免相关数据出现错位,尤其适用于数据量较大、不同字段之间存在关联的表格。

多列排序的实现方式与单列排序基本相同,主要区别在于排序时指定的数据范围不同。在调用 Workbook.DataSorter.Sort(CellRange range) 方法时,需要将包含多个列的单元格区域作为排序范围,而不是只指定单个列。

具体步骤如下:

  1. 创建一个 Workbook 对象。
  2. 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  3. 通过 Workbook.Worksheetsindex 属性获取指定的工作表。
  4. 使用 Worksheet.Range 属性获取需要排序的单元格区域。
  5. 使用 Workbook.DataSorter.SortColumns.Add() 方法设置排序条件。
  6. 使用 Workbook.DataSorter.Sort() 方法对指定区域执行排序。
  7. 将处理后的工作簿保存为新的 Excel 文件。

完整示例代码如下:

代码语言:C#
复制
using Spire.Xls;

namespace SortMultipleColumns
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个新的工作簿
            Workbook workbook = new Workbook();

            // 加载 Excel 文件
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");

            // 获取指定的工作表
            Worksheet sheet = workbook.Worksheets[0];

            // 获取需要排序的单元格区域(多个列)
            CellRange cellRange = sheet.Range["A1:F6"];

            // 按降序对指定列中的数据进行排序
            workbook.DataSorter.SortColumns.Add(5, SortComparsionType.Values, OrderBy.Descending);

            // 对指定的单元格区域执行排序
            workbook.DataSorter.Sort(cellRange);

            // 保存工作簿
            workbook.SaveToFile("SortMultipleColumns.xlsx", ExcelVersion.Version2013);

            // 释放资源
            workbook.Dispose();
        }
    }
}

使用 C# 按自定义顺序对 Excel 数据进行排序

在处理 Excel 数据时,默认的字母或数值排序并不一定符合实际需求。例如,需要按照“高、中、低”或“第一季度、第二季度、第三季度、第四季度”等特定顺序排列数据时,就可以使用自定义排序。通过预先指定排序顺序,可以让数据按照实际业务需求进行排列,方便后续分析和整理。

实现自定义排序时,首先需要创建一个字符串数组,用于定义数据的排序顺序。然后使用 Workbook.DataSorter.SortColumns.Add(int key, OrderBy orderBy) 方法设置排序条件,最后调用 Workbook.DataSorter.Sort(CellRange range) 方法,对指定的单元格区域执行排序。

具体步骤如下:

  1. 创建一个 Workbook 对象。
  2. 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  3. 通过 Workbook.Worksheetsindex 属性获取指定的工作表。
  4. 使用 Worksheet.Range 属性获取需要排序的单元格区域。
  5. 创建字符串数组,定义自定义排序顺序。
  6. 使用 Workbook.DataSorter.SortColumns.Add() 方法设置排序条件。
  7. 使用 Workbook.DataSorter.Sort() 方法对指定区域执行排序。
  8. 将处理后的工作簿保存为新的 Excel 文件。

完整示例代码如下:

代码语言:C#
复制
using Spire.Xls;

namespace SortMultipleColumns
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个新的工作簿
            Workbook workbook = new Workbook();

            // 加载 Excel 文件
            workbook.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Input.xlsx");

            // 获取需要排序的单元格区域
            CellRange cellRange = sheet.Range["A1:F6"];

            String[] customList = { "Central", "North", "South", "East", "West" };

            // 使用自定义列表对指定列进行排序
            workbook.DataSorter.SortColumns.Add(0, customList);

            // 对指定的单元格区域执行排序
            workbook.DataSorter.Sort(cellRange);

            // 保存工作簿
            workbook.SaveToFile("SortByCustomList.xlsx", ExcelVersion.Version2013);

            // 释放资源
            workbook.Dispose();
        }
    }
}

总结

本文介绍了如何使用 C# 对 Excel 中的数据进行排序,包括单列排序、多列排序以及按照自定义顺序排序。通过设置排序范围和排序条件,可以灵活调整数据的排列方式,同时保持相关数据之间的对应关系。

对于具有特定业务需求的数据,还可以通过自定义列表指定排序顺序,使数据按照预期的逻辑进行排列。这些方法适用于日常的数据整理、分析和报表处理,可以帮助提高 Excel 数据处理的效率。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 准备开发环境
  • 使用 C# 对 Excel 单列数据进行排序
  • 使用 C# 对 Excel 多列数据进行排序
  • 使用 C# 按自定义顺序对 Excel 数据进行排序
  • 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档