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

 更新时间:2017年11月20日 11:00:59   作者:数据之巅  
这篇文章主要为大家详细介绍了.NET读写Excel工具Spire.Xls使用,Excel单元格控制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

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

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方法。这里就不再演示。

3.4 单元格的其他功能

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

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

相关文章

  • asp.net窗体的打开和关闭(输出js)

    asp.net窗体的打开和关闭(输出js)

    asp.net窗体的打开和关闭(输出js),需要的朋友可以参考下。
    2011-06-06
  • .NET 8实现大文件分片上传的高效方案汇总

    .NET 8实现大文件分片上传的高效方案汇总

    在当今互联网应用中,大文件上传是一个常见需求,尤其是对于云存储、视频网站、企业文档管理系统等场景,传统的单次文件上传方式在面对大文件时往往会遇到网络不稳定、内存占用高、上传失败需重传整个文件等问题,本文将介绍如何在.NET 8中实现高效稳定的大文件分片上传方案
    2025-04-04
  • asp.net 使用Silverlight操作ASPNETDB数据库

    asp.net 使用Silverlight操作ASPNETDB数据库

    asp.net下使用Silverlight操作ASPNETDB数据库的实现代码
    2010-01-01
  • ASP.NET MVC实现依赖注入的完整过程

    ASP.NET MVC实现依赖注入的完整过程

    这篇文章主要给大家介绍了关于ASP.NET MVC实现依赖注入的完整过程,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET MVC具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • DataView.RowFilter的使用(包括in,like等SQL中的操作符)

    DataView.RowFilter的使用(包括in,like等SQL中的操作符)

    这篇blog转自C# examples,对DataView.RowFilter做了详细介绍,能像SQL中使用in,like等操作符一样进行过滤查询,并附有实例,使用方便。
    2011-07-07
  • .Net程序内存异常的原因及解决

    .Net程序内存异常的原因及解决

    这篇文章主要介绍了.Net程序内存异常的原因及解决,帮助大家更好的理解和学习使用.net技术,感兴趣的朋友可以了解下
    2021-04-04
  • ASP.NET AJAX 4.0的模版编程(Template Programming)介绍

    ASP.NET AJAX 4.0的模版编程(Template Programming)介绍

    不过当我评估ASP.NET AJAX 4.0的时候,我确实被它的特征给震住了。新的特征完全专注于浏览器技术,比如XHTML和javascript。 我非常钦佩ASP.NET AJAX小组。
    2009-07-07
  • ASP.NET Core实现自动依赖注入

    ASP.NET Core实现自动依赖注入

    这篇文章主要介绍了ASP.NET Core实现自动依赖注入的示例,帮助大家更好的理解和学习使用.net技术,感兴趣的朋友可以了解下
    2021-04-04
  • Repeater与ListView功能概述及使用介绍

    Repeater与ListView功能概述及使用介绍

    Repeater(foreach)用于对绑定数据源中的数据进行遍历并按格式显示,Repeater一般只用来展示数据ListView会自动生成很多模板,免去手写模板代码的麻烦,感兴趣的你可以了解下本文
    2013-02-02
  • .net mvc页面UI之Jquery博客日历控件实现代码

    .net mvc页面UI之Jquery博客日历控件实现代码

    最近在做一个博客系统,其他需要用到博客日历控件,网上搜索了很多资料,其中大部分都是javascript的,经过总结使用jquery实现了博客日历效果。代码如下
    2013-09-09

最新评论