文档章节

.NET读写Excel工具Spire.Xls使用入门介绍

李朝强
 李朝强
发布于 2016/06/29 13:38
字数 1847
阅读 98
收藏 4

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

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

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

今天给大家介绍的.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是商业产品,但它的每一个基础功能组件都提供了免费版本。可以去官网看看:http://www.e-iceblue.com/。虽然有一些限制,但简单的东西还是可以试一试。本文介绍的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的成员列表:   

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文件,以及添加命名空间的引用:

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。

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

本文转载自:http://kms.lenovots.com/kb/article.php?id=21987

李朝强
粉丝 91
博文 297
码字总数 149962
作品 0
郑州
产品经理
私信 提问
C# 在excel中查找及替换数据

使用Excel处理数据时,有时候工作表内容很多,如果手动地一行一行的找数据很难发现它们在哪个地方。微软Excel给我们提供了一个很强大的数据处理功能-查找和替换,通过这个功能,我们可以快速...

26度出太阳
2017/04/20
0
0
【office培训】【王佩丰】Excel2010视频教程第1讲:认识Excel 2010

Excel 2010 入门系列视频教程,每周更新一期,每期一小时。 本视频将从最基础的内容开始,涵盖Excel常用工具、函数、数据分析工具、图表等工作中常用的内容。是一套全面学习Excel2010的零基础...

xiaopei050
2018/06/29
0
0
web报表开发技术专题五:Excel的阴影

自从 n 年前 Excel 击败 Lotus ,独霸电子表格软件市场以来。所有的表格类软件都不能不充分考虑 Excel ,寻找 Excel 照顾不到的功能点。所有的表格类软件都要被迫考虑和 Excel 兼容,能够导入...

长平狐
2012/10/11
232
0
自动化测试框架 --LYMRobot

LYMRobot 是基于 python+webdriver提供excel和脚本模式自动化测试框架。 1、目录说明 LYMRobot - readme.txt 说明文档 - template.xls 用例模块文件 - LYMRobot.py 主入口程序 + LYMCOMMON ...

苦叶子
2014/09/26
885
0
Java利用jxl.jar操作Excel文件的方法——把两列相同的数据扫描输出到新的Excel文件中

最近公司在做数据库方面的改造,其中有两个核心库,可以把它们分别命名成A侧库和B侧库,改造的目的是把AB的库整合成一个库,其中表名相同的表要进一步处理,但是每个库中都有上千张表,如果单...

CloudArchitect
2013/09/28
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
9
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部