欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-21 10:09:24
在.net平台,操作excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.office com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使...

在.net平台,操作excel文件是一个非常常用的需求,目前比较常规的方法有以下几种:

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

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

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

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

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

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

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是商业产品,但它的每一个基础功能组件都提供了免费版本。可以去官网看看:。虽然有一些限制,但简单的东西还是可以试一试。本文介绍的spire.xls只是spire.office下面的一个操作excel的组件。

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的成员列表:

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

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

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等等)。

1.基本准备

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

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

2.编写基本代码

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

using system;
using spire.xls;//这是一个最主要的命名空间

namespace xlstest
{
 class program
 {
 static void main(string[] args)
 {
  helloexcel();
  console.readline();
 }
 static void helloexcel()
 {
  //创建1个工作簿,相当于1个excel文件        

  //excel的文档结构是 workbook->worksheet(1个book可以包含多个sheet)
  workbook workbook = new workbook();

  //获取第一个sheet,进行操作,下标是从0开始
  worksheet sheet = workbook.worksheets[0];
  //当然你也可以自己添加1个命名的worksheet到book中
  workbook.worksheets.add("测试sheet");

  //向a1单元格写入文字
  sheet.range["a1"].text = "hello,world!"; 
  
  //将excel文件保存到指定文件,还可以指定excel版本
  workbook.savetofile("sample.xls", excelversion.version97to2003); 
 }
 }
}

3.看看效果

  代码很简单,看看实际效果。2个地方,一个是文字,1个是新建的一个sheet,默认的excel文件是3个sheet。

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

4.与微软com操作和npoi区别

  目前来说使用微软com操作方式和npoi组件是最普遍的,当然也有很多网友分享过使用商业组件的文章。本文前开头也已经介绍过了,微软com操作,最头疼的是依赖office,对环境要求挺大,很多人都是因为这个东西放弃了,而采用开源或者商业的,独立于office环境的操作组件,例如npoi,spire等等。由于我没有使用过微软office的com方式来操作过文档,所以在这里不做过多比较,重点比较我以前使用npoi和现在这个spire.xls的一点区别。

1.npoi在2.0版本(应该是2014年发布的)以后开始支持office 2007版本的excel,很多功能还相对较弱;对office 2003的支持是比较完善的,我以前工作中也只用到2003;

2.spire.xls对excel版本的支持就完善得多,上述也有说明,支持版本office 2010/2013非常完善,这也是这次使用它的主要原因;

3.在以前使用npoi 2.0之前的版本的时候,用npoi做过很复杂的报表,但是有一个很深的感受,npoi的命名空间比较多,而且比较难记,例如hssf,poifs,ss等等搞不懂啥意思,不够直观,所以经常是找不到在哪里,特别是后期维护的时候,要加点功能;

4.npoi在对excel生成图表的支持上不够,貌似2.0以前的版本根本就不行,现在新的版本我也没试过,不知道情况怎么样。我使用spire.xls的一个原因就是自动生成的报表里面要生成图表功能,这一点spire.xls支持非常好;

5.npoi在功能上把握很准确,很核心,其实作为开源组件,已经非常好了。对与excel文件的一些辅助操作,如文件格式转换,数据导出导入等等,spire.xls是好一点,当然这些通过npoi的扩展也是可以完成的。

6.其他优缺点和使用的问题,在这个项目完成之后,有更加深入的对比,到时候再分享给大家吧,也欢迎大家补充。  

5.资源

  npoi开源网站:

  spire.office官方免费版:http://www.e-iceblue.com/introduce/free-xls-component.html

  下一篇文章:【原创】.net读写excel工具spire.xls使用(2)excel文件的控制 即将发布,敬请关注。

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