计算机教程

当前位置:澳门娱乐场网址 > 计算机教程 > 【原创】.NET读写Excel工具Spire.澳门娱乐场网址:

【原创】.NET读写Excel工具Spire.澳门娱乐场网址:

来源:http://www.ablakeforum.com 作者:澳门娱乐场网址 时间:2019-06-01 06:30

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文件是一个非常常用的需求,目前比较常规的方法有以下几种:

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

1.Office Com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使用起来可能非常不便,需要安装Excel,对于服务器,有时候还需要为配置IIS权限。折腾人,看到很多人在群里面使用这个东西,出现各种抓狂的错误;

澳门娱乐场网址,1.Excel行分组显示

  **这里特别感谢:PowerShell免费软件 的回复,用用powershell

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

  • excel 2007的方式,他很好的解决问题。其实我想说的是,Office既然提供了对com组件的支持,肯定是各方面问题都考虑到了,使用肯定是没有问题的,只不过学习成本很大,每个人精力,技术能力有限,懒得去折腾和再去学习,解决的方式肯定都是有的。而纯粹的NPOI,Spire这种操作方式可以让更多的开发人员快速的掌握,效率提高,各有所长吧,看自己的选择。**

澳门娱乐场网址 1

  另外对于免费版本的限制和收费的问题,这个暂时没有办好,大家八仙过海各显神通把。哈哈,你懂的。

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

2.开源.NET组件NPOI方式**:这个方式应该是很多人都在使用的,这个开源的组件相比第一种,虽然稍微简单了点(2003支持比较好,新版本也支持Xlsx),但还是非常好用的;最近在浏览NPOI的开源网站的时候,突然发现Spire居然是NPOI的赞助商。。赞一个吧,互相帮助,服务大众,不像国内的什么 百毒,企鹅,一天到晚打架,互抨,还要封杀,真是可怜啊。看看NPOI的Codeplex网站截图:**

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

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

  今天给大家介绍的.NET平台操作Excel组件Spire.XLS,应该来说比上面2种方法要更好更稳定,功能也更多,先看看基本介绍:

澳门娱乐场网址 3

1.Spire.Office for .NET

  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的组件。

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

2.Spire.XLS特点

  Spire.XLS for .NET 支持所有Excel格式类型(97-2003, 2007, 2010)文件。通过Spire.XLS for .NET,开发人员可以快速方便的查看,生成,读写以及自定义编辑Excel文件。Spire.XLS for .NET有以下主要功能:

1.支持Excel文件的新建,修改编辑,单元格拆分合并,属性设置,加锁加密等等;
2.支持数据库导出到Excel工作表,或者把数据从Excel数据导入到数据库;
3.提供强大的设置单元格格,格式化数字,文字缩进,定位调整,单元格填充以及保护等;
4.支持向Excel文件里面写入公式,表格,图片,不同类型的文字,链接,注释甚至VBA等内容;
5.支持将Excel文件转换成PDF, HTML, CSV, Text, XML以及图片格式。

  支持的Excel文件版本很多,看看下面这个图就了解了,下面是枚举类型ExcelVersion的成员列表:

澳门娱乐场网址 4

  Spire.XLS也提供了免费版本,下载地址:http://www.e-iceblue.com/Introduce/free-xls-component.html,稍微有一些限制,主要限制是单个workbook最多5个sheet,且每个sheet最多支持150行。由于我使用的是正版,所以下面的演示没有这个问题。

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

3.写个Hello Excel

  由于微软的Office太过庞大,我早就抛弃了,这几年一直在用国产的WPS,效果还可以可以,主要是小,才几十M,常用功能也丝毫不逊色与Office。一直的确方便,还免费,二是现在的软件都在争用户,软件大得不得了,占用内存也不断增大,其实受苦的是用户。庞大的Office不是特殊要求,尽量就不要整了,受罪。

  我使用的是Spire.Office 2.1版本,因为单位有正版,所有没有用免费版,系统win7-32bit WPS最新的抢鲜版。工具用的是VS2013,项目类型.NET 4.0(当然组件本身支持的环境很多,如.NET 2.0,3.5,4.0,4.0 ClientProfile,Silverlight3/4/5,WPF等等)。

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");
}

1.基本准备

  第一个步骤,新建项目就不说了,主要是引用相应版本的dll文件,以及添加命名空间的引用:

澳门娱乐场网址 5

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

2.编写基本代码

  现在都流行Hello world,使用这个之前,先简单体验一把Hello Excel。代码非常简单,有注释。

 1 using System;
 2 using Spire.Xls;//这是一个最主要的命名空间
 3 
 4 namespace XlsTest
 5 {
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             HelloExcel();
11             Console.ReadLine();
12         }
13         static void HelloExcel()
14         {
15             //创建1个工作簿,相当于1个Excel文件
         //Excel的文档结构是 Workbook->Worksheet(1个book可以包含多个sheet)
16             Workbook workbook = new Workbook();
17 
18             //获取第一个sheet,进行操作,下标是从0开始
19             Worksheet sheet = workbook.Worksheets[0];
20             //当然你也可以自己添加1个命名的Worksheet到book中
21             workbook.Worksheets.Add("测试sheet");
22 
23             //向A1单元格写入文字
24             sheet.Range["A1"].Text = "Hello,World!";       
25             
26             //将Excel文件保存到指定文件,还可以指定Excel版本
27             workbook.SaveToFile("Sample.xls", ExcelVersion.Version97to2003);        
28         }
29     }
30 }

本文由澳门娱乐场网址发布于计算机教程,转载请注明出处:【原创】.NET读写Excel工具Spire.澳门娱乐场网址:

关键词: