【原创】.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文件版本,以及文件格式来保存,方法原型如下,比较简单不再演示,在后续的文章中会在代码中用到。
- //根据文件名,文件版本,文件格式信息来保存文件
- 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,指定的单元格等等。其实开源的NPOI组件也可以这样做,以前没用过但了解过,用NPOI的朋友可以看看这个:http://tonyqus.sinaapp.com/archives/196,既然要用Spire.XLS,那就看看如何做。
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[];
- //保护sheet
- sheet.Protect("test", SheetProtectionType.All);
- //将Excel文件保存
- workbook.SaveToFile("Sample.xlsx", ExcelVersion.Version2010);
实现的效果应该和WPS的“保护工作表”界面类似,如下图:
保护工作表的作用一般是防止误操作或者对于有版权保护的,不能轻易更改的情况。大家看情况使用,我这里很少用到,只是了解到了,顺便说一下。
- static void ExcelTest4()
- {
- Workbook workbook = new Workbook();
- workbook.CreateEmptySheets();
- Worksheet sheet = workbook.Worksheets[];
- 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);
- }
今天就到此为止把,虽然都很简单,但了解一下,对以后熟练开发还是有好处的。例子非常简单,代码都在上面,到本系列完成后,再打包一份代码。
【原创】.NET读写Excel工具Spire.Xls使用(2)Excel文件的控制的更多相关文章
- 【原创】.NET读写Excel工具Spire.Xls使用(1)入门介绍
在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使用起来可能非常不便,需要安装E ...
- 【原创】.NET读写Excel工具Spire.Xls使用(3)单元格控制
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...
- .NET读写Excel工具Spire.Xls使用(1)入门介绍
原文:[原创].NET读写Excel工具Spire.Xls使用(1)入门介绍 在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式 ...
- 【原创】.NET读写Excel工具Spire.Xls使用(4)对数据操作与控制
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...
- 【原创】.NET读写Excel工具Spire.Xls使用(5)重量级的Excel图表功能
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...
- .NET读写Excel工具Spire.XlS使用(DataExport )
Introduction E-ICEBLUE is developing office.net component, the main products include Spire.Doc, Spir ...
- 【目录】C#操作Excel组件Spire.XLS系列文章目录
本博客所有文章分类的总目录链接:http://www.cnblogs.com/asxinyu/p/4288836.html 1.C#操作Excel组件Spire.XLS文章目录 1.[原创].NET读 ...
- NPOI写Excel,Spire.XLS for.NET组件转换Excel为PDF
首先要引用NPOI动态库和Microsoft.Office.Interop.excel.dll (Microsoft.Office.Interop.excel.dll 最好使用使用NuGet下载 , ...
- 使用SPIRE.XLS来创建Excel 工作簿
使用SPIRE.XLS来创建Excel 工作簿 概要 最近在研究 .NET 控件,使用这些控件在程序中可以快速低成本实现功能. 在这一篇中我们使用的控件是Spire.XL ...
随机推荐
- Windows下Oracle安装图解----oracle-win-64-11g 详细安装步骤
一. Oracle 下载 官方下地址 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.htm ...
- (原创)古典主义——平凡之美 佳作欣赏(摄影,欣赏)
文中图片摘自腾讯文化网:www.cal.qq.com 1.Abstract 生活本就是平淡的,如同真理一般寂静.平时生活中不经意的瞬间,也有它本来的美丽.下面一组图是上上个世纪到上个世纪末一个 ...
- printf(""); 输出小题目
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h> int main(){ int i=43; printf("%d\n&q ...
- \(\S2. \)The Ornstein-Uhlenbeck operator and its semigroup
Let \(\partial_i =\frac{\partial}{\partial x_i}\). The operator \(\partial_i\) is unbounded on \(L^2 ...
- anyncTask的3个参数
AnyncTask异步处理数据并将数据应用到视图的操作场合 一 其中包含这几个方法 1 onPreExcute() 初始化控件,例如进度条2 doInBackground() 具体的执行动作请求数据 ...
- Twitter全局唯一ID生成算法
测试:private static void TestIdWorker() { HashSet<long> set = new HashSet<long>(); IdWorke ...
- centos 搭建ftp服务器
1.安装vsftpd sudo yum install vsftpd 2.配置vsftpd.conf # Allow anonymous FTP? (Beware - allowed by defau ...
- HTML5之Canvas时钟(网页效果--每日一更)
今天,带来的是使用HTML5中Canvas标签实现的动态时钟效果. 话不多说,先看效果:亲,请点击这里 众所周知,Canvas标签是HTML5中的灵魂,HTML5 Canvas是屏幕上的一个由Java ...
- Angular实现递归指令 - Tree View
在层次数据结构展示中,树是一种极其常见的展现方式.比如系统中目录结构.企业组织结构.电子商务产品分类都是常见的树形结构数据. 这里我们采用Angular的方式来实现这类常见的tree view结构. ...
- redis(一) 安装以及基本数据类型操作
redis(一) 安装以及基本数据类型操作 redis安装和使用 redis安装 wget http://download.redis.io/redis-stable.tar.gz tar zxvf ...