.NET读写Excel工具Spire.Xls使用 Excel文件的控制(2)

 更新时间:2021年9月22日 10:03  点击:1582

前一篇文章:“ .NET操作Excel利器Spire.Xls使用(1)入门介绍 ”给大家介绍了Spire.XLS的基本功能和一些比较。这篇文章将重点介绍C#操作Excel文件时,对Excel文件本身的相关设置,全局控制的内容。因为这也是C#读写Excel文件时经常碰到的文章,也是我在使用过程中的一个学习步骤。本文将首先介绍Spire.XLS创建和加载文档的基础知识,以及文件保存,多个Excel文件合并的操作方法,其中我们还可以对生成的Excel文件做更多详细的设置,如,对Excel文件属性进行设置等等,其次很多项目中,不仅要生成Excel文件,还需要打印并获取一些分页信息;最后介绍一下使用C#设置加密保护Excel文件的方法。

1.Excel文档的创建、加载与保存

  我们的上一篇文章的初步介绍中,有一个Hello Excel的例子,其实就已经包括了Excel文件新建和保存的方法,非常简单。这一节将着重对每个细节进行更详细点的研究。

1.1 保存Excel文件

  Excle文件的保存都是使用Workbook的SaveToFile方法,有以下几个版本,可以根据自己的需要,根据文件名,Excel文件版本,以及文件格式来保存,方法原型如下,比较简单不再演示,在后续的文章中会在代码中用到。

//根据文件名,文件版本,文件格式信息来保存文件
public void SaveToFile(string fileName);
public void SaveToFile(string fileName, ExcelVersion version);
public void SaveToFile(string fileName, FileFormat fileFormat);
public void SaveToFile(string fileName, string separator);

1.2 从不同途径加载Excel

  使用C#操作Excel文件,不一定都是生成Excel文件报表之类的,有时候也需要加载已经存在的数据(XML,Excle等)来进行修改,然后保存到对应的Excel文件中去。加载到Excel的方法是Workbook对象的LoadFromFile、LoadFromStream、LoadFromXml等方法,方法原型有以下几个:

//从文件加载,根据文件名,保护模式和Excel版本
public void LoadFromFile(string fileName);
public void LoadFromFile(string fileName, bool preserveMode);
public void LoadFromFile(string fileName, ExcelVersion version);
public void LoadFromFile(string fileName, string separator);
public void LoadFromFile(string fileName, string separator, int row, int column);
public void LoadFromFile(string fileName, string separator, int row, int column, ExcelVersion version);
//从数据流中加载
public void LoadFromStream(Stream stream);
public void LoadFromStream(Stream stream, bool loadStyles);
public void LoadFromStream(Stream stream, ExcelVersion version);
//从XML文件加载
public void LoadFromXml(Stream stream);
public void LoadFromXml(string fileName);
//从模版文件加载
public void LoadTemplateFromFile(string fileName);
public void LoadTemplateFromFile(string fileName, bool loadStyles);

2.C#设置Excel文件属性

  文件属性这个虽然一般人很少用到,但还是介绍一下,毕竟如果文件分发出去的话,将相关属性信息添加完整,还是很有必要的。Excel文件属性可以点击文件右键-属性看到界面,如下图我使用WPS查看的Excel文件属性,使用Office Excel查看的话,是右边的样子,虽然显示不一样,但原理是一样的:


1.WPS显示的Excel属性                                        2.Office Excle显示的文件属性

  设置Excel文件属性的方法在Workbook对象的DocumentProperties属性中,这个属性是一个XlsBuiltInDocumentProperties类型,在Spire.Xls.Core.Spreadsheet.Collections命名空间,通过VS的对象浏览器也可以发现其实现的一些原理,可以扩展到其他的组件使用中。看看一个简单的例子:

#region 2.Excel文件属性例子
static void ExcelTest2()
{   
 Workbook workbook = new Workbook();

 //修改文档属性信息,这样在发布的时候,可以通过文档显示公司以及文件人的信息
 workbook.DocumentProperties.Author = "张三";   //作者
 workbook.DocumentProperties.Subject = "测试文件属性"; //主题
 workbook.DocumentProperties.Title = "测试Excel文件"; //标题
 workbook.DocumentProperties.Company = "XX有限公司";  //单位
 workbook.DocumentProperties.Comments = "保留文件评论"; //评论
 workbook.DocumentProperties.Keywords = "测试 Excel "; //关键词
 workbook.DocumentProperties.CreatedTime = DateTime.Now; //创建时间
 //TODO:还有其他属性,可以参考XlsBuiltInDocumentProperties的相关属性   

 //将Excel文件保存到指定文件,还可以指定Excel版本
 workbook.SaveToFile("Sample.xls", ExcelVersion.Version2007);
}
#endregion

  注意,由于我没有安装Office 2007及以上版本,用WPS显示的时候,有点问题,要用WPS转换为2003版本后才能看出来,这可能是WPS的原因,调试生成的文件发现,这些属性值都是存在的。所以我也没去折腾,安装个Office 真的很麻烦。

3.C#加密和保护Excel文件

  相信很多人都用过Office的加密以及保护功能,对于Excel来说,加密和保护的范围更加广泛了:不仅可以加密文件,还可以保护指定的Sheet,指定的单元格等等。

3.1 加密Excel文件

  Excel文件级的加密其实很简单,就是Workbook对象的Protect方法,传递加密密码即可;如果想要取消密码,则使用workbook.UnProtect(),注意取消加密是不需要密码的,Excel软件操作也是的,所以程序操作也不需要。

#region 3.加密Excel文件例子
static void ExcelTest3()
{
 Workbook workbook = new Workbook();
 workbook.Protect("pwd111");//设置保护加密的 密码 :pwd111
 //将Excel文件保存
 workbook.SaveToFile("Sample.xls", ExcelVersion.Version2007);
}
#endregion

加密后打开文件就是这个样子了:

3.2 保护Sheet与单元格

   Sheet的保护更加灵活一点,使用的是Worksheet对象的Protect方法,传递的参数是 保护的密码,以及可选的保护类型(更加丰富的保护类型),看看下面的例子:

Workbook workbook = new Workbook();

Worksheet sheet = workbook.Worksheets[0];

//保护sheet
sheet.Protect("test", SheetProtectionType.All);

//将Excel文件保存
workbook.SaveToFile("Sample.xlsx", ExcelVersion.Version2010);

实现的效果应该和WPS的“保护工作表”界面类似,如下图:

保护工作表的作用一般是防止误操作或者对于有版权保护的,不能轻易更改的情况。大家看情况使用,我这里很少用到,只是了解到了,顺便说一下。

static void ExcelTest4()
{
 Workbook workbook = new Workbook();
 workbook.CreateEmptySheets(1);
 Worksheet sheet = workbook.Worksheets[0];

 sheet.Range["A1"].Text = "锁定";
 sheet.Range["B1"].Text = "未锁定";

 sheet.Range["A1"].Style.Locked = true;
 sheet.Range["B1"].Style.Locked = false;

 //一定要对工作表进行保护,才能生效
 sheet.Protect("test", SheetProtectionType.All);

 workbook.SaveToFile(@"Sample_Lock.xlsx", ExcelVersion.Version2010);
}

  今天就到此为止把,虽然都很简单,但了解一下,对以后熟练开发还是有好处的。例子非常简单,代码都在上面,到本系列完成后,再打包一份代码。

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

[!--infotagslink--]

相关文章

  • ASP.NET购物车实现过程详解

    这篇文章主要为大家详细介绍了ASP.NET购物车的实现过程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • .NET Core下使用Kafka的方法步骤

    这篇文章主要介绍了.NET Core下使用Kafka的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • 在ASP.NET 2.0中操作数据之七十二:调试存储过程

    在开发过程中,使用Visual Studio的断点调试功能可以很方便帮我们调试发现程序存在的错误,同样Visual Studio也支持对SQL Server里面的存储过程进行调试,下面就让我们看看具体的调试方法。...2021-09-22
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • Win10 IIS 安装.net 4.5的方法

    这篇文章主要介绍了Win10 IIS 安装及.net 4.5及Win10安装IIS并配置ASP.NET 4.0的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-22
  • c#读取excel方法实例分析

    这篇文章主要介绍了c#读取excel方法,实例分析了C#读取excel文件的原理与相关技巧,需要的朋友可以参考下...2020-06-25
  • 详解.NET Core 3.0 里新的JSON API

    这篇文章主要介绍了详解.NET Core 3.0 里新的JSON API,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • Python导入数值型Excel数据并生成矩阵操作

    这篇文章主要介绍了Python导入数值型Excel数据并生成矩阵操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-09
  • .net数据库操作框架SqlSugar的简单入门

    这篇文章主要介绍了.net数据库操作框架SqlSugar的简单入门,帮助大家更好的理解和学习使用.net技术,感兴趣的朋友可以了解下...2021-09-22
  • ASP.NET Core根据环境变量支持多个 appsettings.json配置文件

    这篇文章主要介绍了ASP.NET Core根据环境变量支持多个 appsettings.json配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • C# winform打开Excel文档的方法总结(必看篇)

    下面小编就为大家带来一篇C# winform打开Excel文档的方法总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 记一次EFCore类型转换错误及解决方案

    这篇文章主要介绍了记一次EFCore类型转换错误及解决方案,帮助大家更好的理解和学习使用asp.net core,感兴趣的朋友可以了解下...2021-09-22
  • C# 导出Excel的6种简单方法实现

    C# 导出 Excel 的6种简单方法:数据表导出到 Excel,对象集合导出到 Excel,数据库导出到 Excel,微软网格控件导出到 Excel,数组导出到 Excel,CSV 导出到 Excel,你都会了吗?需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • C#实现Excel表数据导入Sql Server数据库中的方法

    这篇文章主要介绍了C#实现Excel表数据导入Sql Server数据库中的方法,结合实例形式详细分析了C#读取Excel表数据及导入Sql Server数据库的具体操作步骤与相关操作技巧,需要的朋友可以参考下...2020-06-25
  • .NET C#利用ZXing生成、识别二维码/条形码

    ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。这篇文章主要给大家介绍了.NET C#利用ZXing生成、识别二维码/条形码的方法,文中给出了详细的示例代码,有需要的朋友们可以参考借鉴。...2020-06-25
  • 详解ASP.NET Core 中基于工厂的中间件激活的实现方法

    这篇文章主要介绍了ASP.NET Core 中基于工厂的中间件激活的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-22
  • C#实现将数据导出到word或者Excel中的方法

    这篇文章主要介绍了C#实现将数据导出到word或者Excel中的方法,涉及C#操作word及Excel格式文件的方法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C#使用Ado.Net更新和添加数据到Excel表格的方法

    这篇文章主要介绍了C#使用Ado.Net更新和添加数据到Excel表格的方法,较为详细的分析了OLEDB的原理与使用技巧,可实现较为方便的操作Excel数据,需要的朋友可以参考下...2020-06-25
  • asp.net通过消息队列处理高并发请求(以抢小米手机为例)

    这篇文章主要介绍了asp.net通过消息队列处理高并发请求(以抢小米手机为例),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-09-22
  • ASP.NET 2.0中的数据操作:使用两个DropDownList过滤的主/从报表

    在前面的指南中我们研究了如何显示一个简单的主/从报表, 该报表使用DropDownList和GridView控件, DropDownList填充类别,GridView显示选定类别的产品. 这类报表用于显示具有...2016-05-19