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

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

准备开发环境

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

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 文件。

完整示例代码如下:

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.Worksheets[index] 属性获取指定的工作表。
  4. 使用 Worksheet.Range 属性获取需要排序的单元格区域。
  5. 使用 Workbook.DataSorter.SortColumns.Add() 方法设置排序条件。
  6. 使用 Workbook.DataSorter.Sort() 方法对指定区域执行排序。
  7. 将处理后的工作簿保存为新的 Excel 文件。

完整示例代码如下:

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.Worksheets[index] 属性获取指定的工作表。
  4. 使用 Worksheet.Range 属性获取需要排序的单元格区域。
  5. 创建字符串数组,定义自定义排序顺序。
  6. 使用 Workbook.DataSorter.SortColumns.Add() 方法设置排序条件。
  7. 使用 Workbook.DataSorter.Sort() 方法对指定区域执行排序。
  8. 将处理后的工作簿保存为新的 Excel 文件。

完整示例代码如下:

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 数据处理的效率。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容