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

简介:

                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html

.NET读写Excel工具Spire.Xls使用文章目录:http://www.cnblogs.com/asxinyu/p/4374032.html

  前一篇文章:“.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文件版本,以及文件格式来保存,方法原型如下,比较简单不再演示,在后续的文章中会在代码中用到。

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

 1.2 从不同途径加载Excel

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

复制代码
 1 //从文件加载,根据文件名,保护模式和Excel版本
 2 public void LoadFromFile(string fileName);
 3 public void LoadFromFile(string fileName, bool preserveMode);
 4 public void LoadFromFile(string fileName, ExcelVersion version);
 5 public void LoadFromFile(string fileName, string separator);
 6 public void LoadFromFile(string fileName, string separator, int row, int column);
 7 public void LoadFromFile(string fileName, string separator, int row, int column, ExcelVersion version);
 8 //从数据流中加载
 9 public void LoadFromStream(Stream stream);
10 public void LoadFromStream(Stream stream, bool loadStyles);
11 public void LoadFromStream(Stream stream, ExcelVersion version);
12 //从XML文件加载
13 public void LoadFromXml(Stream stream);
14 public void LoadFromXml(string fileName);
15 //从模版文件加载
16 public void LoadTemplateFromFile(string fileName);
17 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的对象浏览器也可以发现其实现的一些原理,可以扩展到其他的组件使用中。看看一个简单的例子: 

复制代码
 1 #region 2.Excel文件属性例子
 2 static void ExcelTest2()
 3 {            
 4     Workbook workbook = new Workbook();
 5 
 6     //修改文档属性信息,这样在发布的时候,可以通过文档显示公司以及文件人的信息
 7     workbook.DocumentProperties.Author = "张三";            //作者
 8     workbook.DocumentProperties.Subject = "测试文件属性";   //主题
 9     workbook.DocumentProperties.Title = "测试Excel文件";    //标题
10     workbook.DocumentProperties.Company = "XX有限公司";     //单位
11     workbook.DocumentProperties.Comments = "保留文件评论";  //评论
12     workbook.DocumentProperties.Keywords = "测试 Excel ";   //关键词
13     workbook.DocumentProperties.CreatedTime = DateTime.Now; //创建时间
14     //TODO:还有其他属性,可以参考XlsBuiltInDocumentProperties的相关属性          
15 
16     //将Excel文件保存到指定文件,还可以指定Excel版本
17     workbook.SaveToFile("Sample.xls", ExcelVersion.Version2007);
18 }
19 #endregion
复制代码

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

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

  相信很多人都用过Office的加密以及保护功能,对于Excel来说,加密和保护的范围更加广泛了:不仅可以加密文件,还可以保护指定的Sheet,指定的单元格等等。其实开源的NPOI组件也可以这样做,以前没用过但了解过,用NPOI的朋友可以看看这个:http://tonyqus.sinaapp.com/archives/196,既然要用Spire.XLS,那就看看如何做。

3.1 加密Excel文件

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

复制代码
1 #region 3.加密Excel文件例子
2 static void ExcelTest3()
3 {
4     Workbook workbook = new Workbook();
5     workbook.Protect("pwd111");//设置保护加密的 密码 :pwd111
6     //将Excel文件保存
7     workbook.SaveToFile("Sample.xls", ExcelVersion.Version2007);
8 }
9 #endregion
复制代码

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

3.2 保护Sheet与单元格

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

复制代码
1 Workbook workbook = new Workbook();
2 
3 Worksheet sheet = workbook.Worksheets[0];
4 
5 //保护sheet
6 sheet.Protect("test", SheetProtectionType.All);
7 
8 //将Excel文件保存
9 workbook.SaveToFile("Sample.xlsx", ExcelVersion.Version2010);
复制代码

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

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

复制代码
 1 static void ExcelTest4()
 2 {
 3     Workbook workbook = new Workbook();
 4     workbook.CreateEmptySheets(1);
 5     Worksheet sheet = workbook.Worksheets[0];
 6 
 7     sheet.Range["A1"].Text = "锁定";
 8     sheet.Range["B1"].Text = "未锁定";
 9 
10     sheet.Range["A1"].Style.Locked = true;
11     sheet.Range["B1"].Style.Locked = false;
12 
13     //一定要对工作表进行保护,才能生效
14     sheet.Protect("test", SheetProtectionType.All);
15 
16     workbook.SaveToFile(@"Sample_Lock.xlsx", ExcelVersion.Version2010);
17 }
复制代码

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




本文转自数据之巅博客园博客,原文链接:http://www.cnblogs.com/asxinyu/p/4374015.html,如需转载请自行联系原作者
相关文章
|
5月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
609 3
|
9月前
|
Shell 网络安全 C#
一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
333 4
|
7月前
|
缓存 开发框架 .NET
一个功能丰富的 .NET 工具库 XiHan.Framework.Utils
XiHan.Framework.Utils 是一个功能全面的 .NET 工具库,包含字符串处理、集合扩展、加密解密、分布式 ID、文件操作、缓存、线程、国际化等模块。设计上注重高内聚、低耦合,适用于各类 .NET 应用开发。支持 AES 加密、树形结构转换、分页过滤、日志输出等功能,提供简单易用的 API。可通过 NuGet 快速安装,源码开放,采用 MIT 协议。
292 56
|
5月前
|
Python
Excel中如何批量重命名工作表与将每个工作表导出到单独Excel文件
本文介绍了如何在Excel中使用VBA批量重命名工作表、根据单元格内容修改颜色,以及将工作表导出为独立文件的方法。同时提供了Python实现导出工作表的代码示例,适用于自动化处理Excel文档。
|
7月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
397 10
|
12月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
2868 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
6月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
269 0
|
10月前
|
文字识别 Serverless 开发工具
【全自动改PDF名】批量OCR识别提取PDF自定义指定区域内容保存到 Excel 以及根据PDF文件内容的标题来批量重命名
学校和教育机构常需处理成绩单、报名表等PDF文件。通过OCR技术,可自动提取学生信息并录入Excel,便于统计分析和存档管理。本文介绍使用阿里云服务实现批量OCR识别、内容提取、重命名及导出表格的完整步骤,包括开通相关服务、编写代码、部署函数计算和设置自动化触发器等。提供Python示例代码和详细操作指南,帮助用户高效处理PDF文件。 链接: - 百度网盘:[链接](https://pan.baidu.com/s/1mWsg7mDZq2pZ8xdKzdn5Hg?pwd=8866) - 腾讯网盘:[链接](https://share.weiyun.com/a77jklXK)
1518 5
|
Linux C# Windows
.NET使用MiniWord高效生成Word文件
.NET使用MiniWord高效生成Word文件
460 12
|
Web App开发 C# Windows
一款.NET开源的Windows资源管理器标签页工具
一款.NET开源的Windows资源管理器标签页工具
195 5