我们可以对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)