本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html

.NET读写Excel工具Spire.Xls使用文章目录:http://www.cnblogs.com/asxinyu/p/4374032.html

  前一篇文章:“.NET读写Excel工具Spire.Xls使用(2)Excel文件的控制”给大家介绍了C#使用Spire.XLS来控制Excel文件的基本功能和相关实践代码。这篇文章将重点介绍C#操作Excel文件时,对Excel单元格的控制。

  以前在使用NPOI的时候,其实印象最深的还是单元格的操作,因为以前使用NPOI的主要任务是生成一个复杂的统计报表,不仅表头比较复杂,而且行类别的控制也比较复杂,不是固定的,要动态的进行。并且不同单元格的边框还不一样,所以当初使用 NPOI 也走了不少弯路。对单元格的控制是写入Excel文件的最核心的东西。所以本篇文章就介绍我在使用Spire.XLS过程中相关单元格的控制总结。

  本文原文地址:http://www.cnblogs.com/asxinyu/p/4365889.html

1.Excel单元格概述

  Excel单元格是表格的最小编辑单元,也是操作的主体,日常涉及到的相关功能有:

1.对指定单元格读写内容:读写内容的时候,有一些操作可以和格式控制,如单元格的类型进行合并;

2.对单元格的格式进行控制,如数字,字符串,文字颜色,字体大小等等;对于自定义报表等文件,这个要求是比较常见的;

3.对单元格的样式进行控制,如边框线条(样式,颜色),内容对齐,合并单元格等等,也是很常见的;

4.单元格的相关统计,如一些函数,求和统计功能等等;

5.单元格的保护功能可以参考上一篇文章.NET读写Excel工具Spire.Xls使用(2)Excel文件的控制

  接下来的内容主要对上述4个主要用途进行演示,附一些实际代码。如果有需要补充的,请留言。

2.单元格内容的读写

  在Spire.XLS中读写单元格,主要的一个对象不可不知,那就是CellRange,代表是单元格的一个范围集合,可以根据单元格的名称如A1,B2来返回单元格集合,也可以根据行号和列号(下标从1开始)来访问。例如下面的代码,直接对A1单元格赋值,然后对第一行第2个单元格赋值。相比NPOI,不停的Create再赋值,这确实方便不少。看代码:

 static void ExcelTest5()
{
//创建1个工作簿,相当于1个Excel文件
Workbook workbook = new Workbook(); //获取第一个sheet,进行操作,下标是从0开始
Worksheet sheet = workbook.Worksheets[]; //向A1单元格写入文字
sheet.Range["A1"].Text = "我是A1单元格";
sheet.Range[, ].Text = "我是第1行的第2个单元格"; //将Excel文件保存到指定文件,还可以指定Excel版本
workbook.SaveToFile("例子.xls", ExcelVersion.Version97to2003);
}

看效果:

而如果要访问对应单元格的值,也是可以直接通过上述CellRange获取单元格对象后,直接访问其属性Value,或者TextNumberValue来获取你想要类型的值,不需要自己转换。但是前提你要知道单元格的格式。如下面代码:

 Console.WriteLine(sheet.Range["A1"].Value);
Console.WriteLine(sheet.Range["B1"].Text);

3.单元格的内容格式与样式

3.1 单元格的数据类型

  在使用NPOI的过程中,不仅单元格要频繁Create,对写入的数据格式也要设置,而在Spire.XLS中,这些变得更简单了。直接根据数据类型给指定属性就OK了,非常简洁明了。例如,下面的代码,直接向单元格写入双精度,日期和布尔类型的数据,给NumberValue,DateTimeValue,BooleanValue属性直接赋值就好了。

 //向A1单元格写入文字
sheet.Range["A1"].Text = "我是A1单元格";
sheet.Range[, ].Text = "我是第1行的第2个单元格"; sheet.Range["A3"].NumberValue = 100.23;
sheet.Range["A4"].DateTimeValue = DateTime.Now;
sheet.Range["A5"].BooleanValue = true;

  是不是非常简单,一行代码搞定的东西,以前可能要几行,多了之后也有些头疼。

3.2 单元格的字体格式

  以前的NPOI样式的控制,要单独新建样式对象进行设置,而在Spire.XLS中,更加直接,直接对Range的属性进行设置就好了,非常简单明了,看看我们对范围内的单元格是如何控制字体格式的,只列举了几个属性,其他属性以此类推:

 //对一定范围内的单元格进行字体控制
sheet.Range["A1:B10"].Style.Font.FontName = "微软雅黑";//字体名称
sheet.Range["A1:B10"].Style.Font.Size = ;//字体大小
sheet.Range["A1:B10"].Style.Font.Underline = FontUnderlineType.DoubleAccounting;//下划线类型

看看效果:

  是不是更简单,Range的范围选择也很灵活。

3.3 合并单元格

  合并单元格在用Excel做报表的时候很有用,在C#中操作合并单元格,其实也非常容易。

 //将A5-B6的单元格合并
sheet.Range["A5:B6"].Merge();
//将某一行全部合并
sheet.Rows[].Merge();

这里要注意:合并一行的话,不是把所有一行单元格都合并掉,而是默认合并到最后一列(取最大有值的列)。效果如下:

  有的时候需要取消合并单元格,其实和上面原理是一样的,用的是UnMerge方法。这里就不再演示。

3.4 单元格的其他功能

  其实单元格的操作还有很多,例如格式的复制应用到其他单元格,隐藏行或者列,插入行或者列等等,这些做起来其实都很简单,可以参考官方网站提供的教程,由于我这方面用得少,就不详细介绍了,以后自己用得上的话,也是去翻这些文档:官方教程链接

4.资源代码

  参考官方例子和本文的系列文章:http://www.cnblogs.com/asxinyu/p/4374032.html

【原创】.NET读写Excel工具Spire.Xls使用(3)单元格控制的更多相关文章

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

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

  2. 【原创】.NET读写Excel工具Spire.Xls使用(1)入门介绍

    在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使用起来可能非常不便,需要安装E ...

  3. 【原创】.NET读写Excel工具Spire.Xls使用(2)Excel文件的控制

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

  4. 【原创】.NET读写Excel工具Spire.Xls使用(5)重量级的Excel图表功能

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

  5. .NET读写Excel工具Spire.Xls使用(1)入门介绍

    原文:[原创].NET读写Excel工具Spire.Xls使用(1)入门介绍 在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式 ...

  6. .NET读写Excel工具Spire.XlS使用(DataExport )

    Introduction E-ICEBLUE is developing office.net component, the main products include Spire.Doc, Spir ...

  7. 【目录】C#操作Excel组件Spire.XLS系列文章目录

    本博客所有文章分类的总目录链接:http://www.cnblogs.com/asxinyu/p/4288836.html 1.C#操作Excel组件Spire.XLS文章目录 1.[原创].NET读 ...

  8. NPOI写Excel,Spire.XLS for.NET组件转换Excel为PDF

    首先要引用NPOI动态库和Microsoft.Office.Interop.excel.dll (Microsoft.Office.Interop.excel.dll  最好使用使用NuGet下载 , ...

  9. java POI excel 导出复合样式(一个单元格两个字体)

    前言:java poi 导出 excel 时,需要设置一个单元格有多个字体样式,有点类似于富文本. 想要达到的效果(一个单元格里): 我使用的 poi 版本是 <dependency> & ...

随机推荐

  1. uva-439

    题意:骑士在一个8*8的棋盘上移动,1-8代表行号,a-h代表列号,给出骑士的初始位置和目的位置,求骑士最少的移动步数:题目隐含一层意思(骑士移动规则是中国象棋的“马”的走法) 输入:一串字符串,包含 ...

  2. list-style

    list-style: inside url(" "); 默认li的点在父级div框的外面,在li上加样式list-style-position: inside;可以使点在框内:点 ...

  3. JavaWeb开发学习(二)-配置Tomcat服务器

    1. 下载Tomcat服务器 Tomcat是一个免费.开源的JavaWeb服务器. Tomcat官网是http://tomcat.apache.org/ 我使用的是版本是Tomcat7.0,下载Zip ...

  4. spring MVC原理

    spring MVC原理   Spring MVC工作流程图   图一   图二    Spring工作流程描述       1. 用户向服务器发送请求,请求被Spring 前端控制Servelt D ...

  5. 理解一下单片机的I2C和SPI通信

    应某位网友要求,今天说一下单片机的I2C SPI通信,可能说不清楚,因为这毕竟要做实验才可完全理解. I2C和SPI是两种不同的通信协议. 听到协议,似乎高不可攀,其实协议就是人们定义的一个标准而已, ...

  6. storysnail的Linux串口编程笔记

    storysnail的Linux串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据Ge ...

  7. RCP:解决Navigator快捷键不生效的问题

    自己扩展CNF之后,导航栏的删除.复制.黏贴等快捷键失效了,在网上搜索了半天,结果最终不如自己看源码. 本篇文章的主要目的不止于解决快捷键失效,更在于如何处理类似的问题,如何利用debug快速定位.这 ...

  8. 一步一步跟我学DeviceOne开发 - 仿微信应用(一,二,三)

    这是一个系列的文档,长期目标是利用DeviceOne开发一些目前使用广泛的优质手机应用,我们会最大化的实现这些应用的每一个功能和细节,不只停留在简单的UI模仿和Demo阶段,而是一个基本可以使用的实际 ...

  9. [.net 面向对象编程基础] (17) 数组与集合

    [.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...

  10. 分享一个U3D在Runtime显示碰撞盒的插件

    有些时候,我们需要在Game视图显示碰撞盒,比如格斗游戏我要开发碰撞配置的工具,我经常需要看到碰撞盒,今天找了一下,没有发现合适的插件,我还花5美金买了一个插件,结果也只是在scene视图显示,这里我 ...