音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

.NET读写Excel工具Spire.Xls使用 Excel单元格控制(3)
日期:2021-09-07 22:33:12   来源:脚本之家

前一篇文章:“ .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 单元格的其他功能

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

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

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    ASP编程JSP编程PHP编程.NET编程python编程