这篇文章给大家分享的是有关.NET读写Excel工具Spire.Xls之Excel单元格控制的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
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[0]; //向A1单元格写入文字 sheet.Range["A1"].Text = "我是A1单元格"; sheet.Range[1, 2].Text = "我是第1行的第2个单元格"; //将Excel文件保存到指定文件,还可以指定Excel版本 workbook.SaveToFile("例子.xls", ExcelVersion.Version97to2003); }
看效果:
而如果要访问对应单元格的值,也是可以直接通过上述CellRange获取单元格对象后,直接访问其属性Value,或者Text,NumberValue来获取你想要类型的值,不需要自己转换。但是前提你要知道单元格的格式。如下面代码:
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[1, 2].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的属性进行设置就好了,非常简单明了,看看我们对范围内的单元格是如何控制字体格式的,只列举了几个属性,其他属性以此类推:
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#中操作合并单元格,其实也非常容易。
//将A5-B6的单元格合并 sheet.Range["A5:B6"].Merge(); //将某一行全部合并 sheet.Rows[7].Merge();
这里要注意:合并一行的话,不是把所有一行单元格都合并掉,而是默认合并到最后一列(取最大有值的列)。效果如下:
有的时候需要取消合并单元格,其实和上面原理是一样的,用的是UnMerge方法。这里就不再演示。
感谢各位的阅读!关于“.NET读写Excel工具Spire.Xls之Excel单元格控制的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。