.NET读写Excel工具Spire.Xls使用 对数据操作与控制(4)

Spire.Office for .NET是E-iceblue开发的一种企业级.NET Office编辑的软件集合,包括Spire.Doc,Spire XLS,Spire.PDF,Spire.BarCode等等。.NET平台的开发人员可以使用Spire.Office for .NET轻松的操作含有文档编辑功能的应用程序,还可以导出为MS Word/Excel/RTF/Acces、PDF、XPS、HTML、XML等格式,使用Spire.Office,不需要安装Microsoft Office。虽然Spire.Office for .NET是商业产品,但它的每一个基础功能组件都提供了免费版本。可以去官网看看:http://www.e-iceblue.com/。虽然有一些限制,但简单的东西还是可以试一试。本文介绍的Spire.XLS只是Spire.Office下面的一个操作Excel的组件。

  前一篇文章:“.NET读写Excel工具Spire.Xls使用(3)单元格控制”给大家介绍了Spire.XLS的中单元格的格式等控制功能,这篇文章将重点介绍C#操作Excel文件时,对数据的控制。单元格和数据是Excel文件的核心,很难将两者单独分开讲解或者学习,有时候都是交叉的。所以这篇文章的内容有一部分在前一篇文章中其实已经说过了,例如单元格数据的编辑修改,这里就不再重复讲解。

1.Excel行分组显示

  在数据很多的时候,有时候需要进行分组显示,可以隐藏很多细节。在需要的时候再点击看详细的内容,相当于明细表吧。当然可能也不一定是这样。总之就是Excel表的分组功能,就像下面这个样子,注意看 行号 的变化,中间行号的行分组隐藏起来的:

下面看看如何使用Spire.XLS来在程序中设置分组操作,其实也非常简单,这就是商业组件的好处,把功能做到细致,1个函数就实现想要的功能,使用的是sheet对象的GroupByRows方法,如下面例子:

static void ExcelTest6()
{
 Workbook workbook = new Workbook();
 //获取第一个sheet,进行操作,下标是从0开始
 Worksheet sheet = workbook.Worksheets[0];
 sheet.GroupByRows(2, 9, true);//最后1个bool参数是默认是否折叠
 workbook.SaveToFile("Sample.xls", ExcelVersion.Version97to2003);
 System.Diagnostics.Process.Start("Sample.xls");
}

效果如下,把第2-9行分组,默认是折叠的:

2.向单元格快速填充数组

  在前一篇文章中,我们都是直接向单元格写入数据,这个想起来也很繁琐,所以我也会想能不能直接一次性将数组全部写入,这些岂不是更快更方便,代码也更少。在查看Spire.XLS的官方案例的时候,还真发现了这么个功能,非常强大,对于导入数据非常管用:直接在指定位置插入二维数组,批量操作,省去了逐个单元格操作的烦恼。看看下面代码:

static void ExcelTest7()
{
 Workbook workbook = new Workbook();
 workbook.CreateEmptySheets(1);
 Worksheet sheet = workbook.Worksheets[0];

 int maxRow = 10;
 int maxCol = 5;
 //生成测试数据数组
 object[,] myarray = new object[maxRow + 1, maxCol + 1];
 bool[,] isred = new bool[maxRow + 1, maxCol + 1];
 for (int i = 0; i <= maxRow; i++)
 {
 for (int j = 0; j <= maxCol; j++)
 {
  myarray[i, j] = i + j;
  if ((int)myarray[i, j] > 8)
  isred[i, j] = true;
 }
 }
 //将数组插入到sheet中,后面参数是起始的行和列号
 sheet.InsertArray(myarray, 1, 1);

 workbook.SaveToFile("test.xls");
 System.Diagnostics.Process.Start("test.xls");
}

效果如下图所示,截图不完整。。。反正就是这个意思,当然你还可以写入其他格式的数据:

3.查找与替换数据

  在处理大量的数据的时候,Excel中sheet的查找与替换是很常见的,平时虽然手动操作比较多,程序操作是怎么样的呢?其实也很简单,对sheet对象进行搜索,使用FindAllXXX方法找到相应的单元格即可,注意XXX代表不同的数据类型,如FindAllBool,FindAllDateTime,FindAllNumber,FindAllString等等。看一个例子演示如何直接进行查找和替换,并修改对应单元格颜色的例子:

CellRange[] ranges = sheet.FindAllString("test", false, false);
//循环找到的单元格
foreach (CellRange range in ranges)
{
 range.Text = "修改后";
 range.Style.Color = Color.Yellow;
}

4.数据过滤器创建与取消

  过滤器是啥玩意,可能一般人不会注意,当然经常使用Excel的人,过滤器是必不可少的。就是将列进行筛选,自动列出选项,然后操作者根据需要选择选项,显示指定条件的数据,相当于一个动态查询的过程吧。Excel的速度很快,很方便,就是下面这种效果:

实际的代码也很简单,如下面的代码,看方法的原型就知道啥意思了。选择表和范围,设置样式就可以了。

Workbook workbook = new Workbook();
workbook.LoadFromFile("test.xlsx");
Worksheet sheet = workbook.Worksheets[0];
//创建过滤器
sheet.ListObjects.Create("Table", sheet.Range[1, 1, sheet.LastRow, sheet.LastColumn]);

sheet.ListObjects[0].BuiltInTableStyle = TableBuiltInStyles.TableStyleLight9;

workbook.SaveToFile("Filter.xlsx", ExcelVersion.Version2010);

当然,有时候也需要取消过滤器,需要过滤器只需要一个下面一个清空操作即可:

sheet.AutoFilters.Clear();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • .NET读写Excel工具Spire.Xls使用 Excel文件的控制(2)

    前一篇文章:" .NET操作Excel利器Spire.Xls使用(1)入门介绍 "给大家介绍了Spire.XLS的基本功能和一些比较.这篇文章将重点介绍C#操作Excel文件时,对Excel文件本身的相关设置,全局控制的内容.因为这也是C#读写Excel文件时经常碰到的文章,也是我在使用过程中的一个学习步骤.本文将首先介绍Spire.XLS创建和加载文档的基础知识,以及文件保存,多个Excel文件合并的操作方法,其中我们还可以对生成的Excel文件做更多详细的设置,如,对Excel文件

  • .NET读写Excel工具Spire.Xls使用入门教程(1)

    在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使用起来可能非常不便,需要安装Excel,对于服务器,有时候还需要为配置IIS权限.折腾人,看到很多人在群里面使用这个东西,出现各种抓狂的错误: 这里特别感谢:PowerShell免费软件 的回复,用用powershell + excel 2007的方式,他很好的解决问题.其实我想说的是,Office既然提供了对com组件的支持,

  • .NET读写Excel工具Spire.Xls使用 重量级的Excel图表功能(5)

    前一篇文章:".NET读写Excel工具Spire.Xls使用(4)对数据操作与控制"给大家介绍了Spire.XLS对数据的控制相关功能,这一篇给大家介绍Spire.XLS最大的亮点所在,C#控制Excel生成图表.将介绍C#生成不同类型图表的方法,并介绍Excel图表的相关操作,如调整大小,保存图片等操作的方法. 1.Excel中的图表 我们生活的这个世界是丰富多彩的,几乎所有的知识都来自于视觉.也许无法记住一连串的数字,以及它们之间的关系和趋势.但是可以很轻松地记住一幅图画或者一个

  • .NET读写Excel工具Spire.Xls使用 Excel单元格控制(3)

    前一篇文章:" .NET读写Excel工具Spire.Xls使用(2)Excel文件的控制"给大家介绍了C#使用Spire.XLS来控制Excel文件的基本功能和相关实践代码.这篇文章将重点介绍C#操作Excel文件时,对Excel单元格的控制. 以前在使用NPOI的时候,其实印象最深的还是单元格的操作,因为以前使用NPOI的主要任务是生成一个复杂的统计报表,不仅表头比较复杂,而且行类别的控制也比较复杂,不是固定的,要动态的进行.并且不同单元格的边框还不一样,所以当初使用 NPOI 也

  • .NET读写Excel工具Spire.Xls使用 对数据操作与控制(4)

    Spire.Office for .NET是E-iceblue开发的一种企业级.NET Office编辑的软件集合,包括Spire.Doc,Spire XLS,Spire.PDF,Spire.BarCode等等..NET平台的开发人员可以使用Spire.Office for .NET轻松的操作含有文档编辑功能的应用程序,还可以导出为MS Word/Excel/RTF/Acces.PDF.XPS.HTML.XML等格式,使用Spire.Office,不需要安装Microsoft Office.虽然

  • C#组件系列 你值得拥有的一款Excel处理神器Spire.XLS

    前言:最近项目里面有一些对Excel操作的需求,博主想都没想,NPOI呗,简单.开源.免费,大家都喜欢!确实,对于一些简单的Excel导入.导出.合并单元格等,它都没啥太大的问题,但是这次的需求有两点是NPOI搞不定的: 1.导入Excel后,需要切割Excel的Sheet页,然后每个Sheet页单独生成一个PDF文件. 2.导出Excel的时候,项目里面需要将一些数据表格以图表的形式在Excel里面展示. 找了一圈资料,对于Excel生成pdf,网上的答案千篇一律:使用COM组件的方式,通过调

  • Java利用POI读写Excel文件工具类

    本文实例为大家分享了Java读写Excel文件工具类的具体代码,供大家参考,具体内容如下 package com.test.app.utils; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect.Method; imp

  • php中使用PHPExcel读写excel(xls)文件的方法

    本文实例讲述了PHP中使用PHPExcel读写excel(xls)文件的方法,非常实用.分享给大家供大家参考之用.具体方法如下: 很多PHP类库在读取中文的xls.csv文件时会有问题,网上找了下资料,发现PHPExcel类库好用,官网地址为:http://phpexcel.codeplex.com/.现将PHPExcel读写Excel的方法分别叙述如下: 1.读取xls文件内容 <?php //向xls文件写入内容 error_reporting(E_ALL); ini_set('displa

  • Java 如何读取Excel格式xls、xlsx数据工具类

    目录 Java 读取Excel格式xls.xlsx数据工具类 需要POI的jar包支持 调用方式 使用poi读取xlsx格式的Excel总结 今天遇到的坑 我使用的是springmvc,首先是controller部分 然后是读取Excel文件部分,也就是service部分 spring-servlet.xml 配置如下 最初的maven是这么配置的 Java 读取Excel格式xls.xlsx数据工具类 需要POI的jar包支持 调用方式 ReadExcelTest excelTest = ne

  • python 读写excel文件操作示例【附源码下载】

    本文实例讲述了python 读写excel文件操作.分享给大家供大家参考,具体如下: 对excel文件的操作,python有第三方的工具包支持,xlutils,在这个工具包中包含了xlrd,xlwt等工具包.利用这些工具,可以方便的对excel 进行操作. 1. 下载 xlutils : http://pypi.python.org/pypi/xlutils 2. 安装,解压下载文件之后,可以 python setup.py install 3. 应用(生成EXCEL,遍历EXCEL,修改EXC

随机推荐