【原创】.NET读写Excel工具Spire.Xls使用(3)单元格控制-阿里云开发者社区

开发者社区> 老朱教授> 正文

【原创】.NET读写Excel工具Spire.Xls使用(3)单元格控制

简介:
+关注继续查看

                本博客所有文章分类的总目录: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再赋值,这确实方便不少。看代码:

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

看效果:

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

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

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

3.1 单元格的数据类型

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

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

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

3.2 单元格的字体格式

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

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

看看效果:

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

3.3 合并单元格

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

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

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

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

3.4 单元格的其他功能

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




本文转自数据之巅博客园博客,原文链接:http://www.cnblogs.com/asxinyu/p/Spire_XLS_3_CellControl.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用VB.NET开发定制控件
正常情况下,在开发.NET Windows应用程序时,我们都会用到System.Windows.Forms名字空间的控件。可供我们使用的控件很多,从Label、TextBox等简单的控件到MonthCalendar、ColorDialog等功能更丰富、更复杂的控件。
767 0
Excel 2013中单元格添加下拉列表的方法
使用Excel录入数据的时候我们通常使用下拉列表来限定输入的数据,这样录入数据就很少发生错误了。Excel 2013较以前的版本发生了很大的变化,那么在Excel 2013是如何添加下拉列表的呢? 下面Office办公助手的小编就以“性别”中下拉选择男女为例,讲解下Excel 2013中添加下拉列表的方法。
658 0
《React Native移动开发实战》一一2.2 Git版本控制工具
本节书摘来自华章出版社《React Native移动开发实战》一 书中的第2章,第2.2节,作者:袁林 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1768 0
DOS批处理命令递归删除给定的文件(夹),兼VC工程清理小工具
<p><span style="font-size:18px;">使用dos批处理命令递归删除指定的文件(夹):</span></p> <p><span style="font-size:18px;">(下面内容针对清理VC工程!自己按说明任意修改)</span></p> <p><span style="font-size:18px;">2014-06-10修改:删除前增加了[y,n]询问;<
1566 0
iOS系统菜单控制器UIMenuController使用简介(二)
iOS系统菜单控制器UIMenuController使用简介
25 0
控制台安装跟检测Microsoft.Net Framework
1、检测 每一个版本的.Net Framework的安装过程都会在Windows目录下的\Microsoft.NET\Framework目录中生成一个子目录(安装目录)。 比如说,假设Windows目录在C盘且不曾在安装OS时重命名过Windows目录,那么.Net Framework 3.5的安装目录应该是: C:\Windows\Microsoft.NET\Framework\v3.5 在这个目录下应该有一个该版本的MSBuild.exe,我们执行 MSBuild /version 应该能得到版本信息。
1054 0
+关注
3546
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载