我们可以对Excel中的数据进行排序,Spire.XLS支持以下三种排序方式:
- 基于单元格的值
- 基于单元格的背景颜色
- 基于单元格的字体颜色
本文将对这三种排序方式逐一进行介绍。
基于单元格的值
C#
//创建Workbook实例
Workbook workbook = new Workbook();
//加载Excel文档
workbook.LoadFromFile(@"SortData.xlsx");
//获取第一个工作表
Worksheet worksheet = workbook.Worksheets[0];
//指定需要排序的列索引以及排序的方式 (基于单元格的值)
SortColumn column = workbook.DataSorter.SortColumns.Add(0, SortComparsionType.Values, OrderBy.Descending);
//排序是否包含标题(默认第一个数据为标题,不会对它进行排序)
workbook.DataSorter.IsIncludeTitle = false;
//指定要排序的单元格范围并进行排序
workbook.DataSorter.Sort(worksheet.Range["A2:A9"]);
//保存文档
workbook.SaveToFile(@"SortByValues.xlsx", ExcelVersion.Version2010);
VB.NET
'创建Workbook实例 Dim workbook As New Workbook() '加载Excel文档
workbook.LoadFromFile("SortData.xlsx")
'获取第一个工作表 Dim worksheet As Worksheet = workbook.Worksheets(0) '指定需要排序的列索引以及排序的方式 (基于单元格的值)
Dim column As SortColumn = workbook.DataSorter.SortColumns.Add(0, SortComparsionType.Values, OrderBy.Descending)
'排序是否包含标题(默认第一个数据为标题,不会对它进行排序) workbook.DataSorter.IsIncludeTitle = False '指定要排序的单元格范围并进行排序
workbook.DataSorter.Sort(worksheet.Range("A2:A9"))
'保存文档 workbook.SaveToFile("SortByValues.xlsx",ExcelVersion.Version2010)
基于单元格的背景颜色
C#
//创建Workbook实例 Workbook workbook = new Workbook();//加载Excel文档 workbook.LoadFromFile(@"SortData.xlsx");//获取第二个工作表 Worksheet worksheet = workbook.Worksheets[1];//指定需要排序的列索引以及排序的方式 (基于单元格的背景颜色) SortColumn column = workbook.DataSorter.SortColumns.Add(0,SortComparsionType.BackgroundColor,OrderBy.Top);//指定背景颜色 column.Color = Color.Red;//排序是否包含标题(默认第一个数据为标题,不会对它进行排序) workbook.DataSorter.IsIncludeTitle = false;//指定要排序的单元格范围并进行排序 workbook.DataSorter.Sort(worksheet.Range["A2:A8"]);//保存文档 workbook.SaveToFile(@"SortByCellColor.xlsx",ExcelVersion.Version2010);
VB.NET
'创建Workbook实例
Dim workbook As New Workbook()
'加载Excel文档 workbook.LoadFromFile("SortData.xlsx") '获取第二个工作表
Dim worksheet As Worksheet = workbook.Worksheets(1)
'指定需要排序的列索引以及排序的方式 (基于单元格的背景颜色) Dim column As SortColumn = workbook.DataSorter.SortColumns.Add(0,SortComparsionType.BackgroundColor,OrderBy.Top) '指定背景颜色
column.Color = Color.Red
'排序是否包含标题(默认第一个数据为标题,不会对它进行排序) workbook.DataSorter.IsIncludeTitle = False '指定要排序的单元格范围并进行排序
workbook.DataSorter.Sort(worksheet.Range("A2:A8"))
'保存文档 workbook.SaveToFile("SortByCellColor.xlsx",ExcelVersion.Version2010)
基于单元格的字体颜色
C#
//创建Workbook实例 Workbook workbook = new Workbook();//加载Excel文档 workbook.LoadFromFile(@"SortData.xlsx");//获取第三个工作表 Worksheet worksheet = workbook.Worksheets[2];//指定需要排序的列索引以及排序的方式 (基于单元格的字体颜色) SortColumn column = workbook.DataSorter.SortColumns.Add(0,SortComparsionType.FontColor,OrderBy.Bottom);//指定字体颜色 column.Color = Color.Red;//排序是否包含标题(默认第一个数据为标题,不会对它进行排序) workbook.DataSorter.IsIncludeTitle = false;//指定要排序的单元格范围并进行排序 workbook.DataSorter.Sort(worksheet.Range["A2:A8"]);//保存文档 workbook.SaveToFile(@"SortByFontColor.xlsx",ExcelVersion.Version2010);
VB.NET
'创建Workbook实例
Dim workbook As New Workbook()
'加载Excel文档 workbook.LoadFromFile("SortData.xlsx") '获取第三个工作表
Dim worksheet As Worksheet = workbook.Worksheets(2)
'指定需要排序的列索引以及排序的方式 (基于单元格的字体颜色) Dim column As SortColumn = workbook.DataSorter.SortColumns.Add(0,SortComparsionType.FontColor,OrderBy.Bottom) '指定字体颜色
column.Color = Color.Red
'排序是否包含标题(默认第一个数据为标题,不会对它进行排序) workbook.DataSorter.IsIncludeTitle = False '指定要排序的单元格范围并进行排序
workbook.DataSorter.Sort(worksheet.Range("A2:A8"))
'保存文档 workbook.SaveToFile("SortByFontColor.xlsx",ExcelVersion.Version2010)