十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如何在.NET利用pire.Xls工具读写Excel文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
鹿邑ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!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); }
关于如何在.NET利用pire.Xls工具读写Excel文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。