简介
Excel在工作和学习中应用广泛,是必不可少的数据统计与处理工具。对于一些重要的Excel文件,只供特殊人员查看、编辑或者防止重要数据对外泄露时,就需要设置文档保护,包括设置访问密码、设置文件只读等操作。本篇文章将介绍如何使用C#来设置Excel工作簿和工作表的保护,示例内容涉及以下要点
1. 加密Excel工作簿
2. 解密Excel工作簿
3. 加密Excel工作表
3.1加密整个工作表
3.2 锁定单元格区域
4. 解密工作表
5. 隐藏单元格公式
工具使用
PS: 安装后,添加引用Spire.Xls.dll到项目中并添加相应的命名空间即可,dll文件可在安装路径下的Bin文件夹中获取。
注:由于工作中我们会遇到各种各样的需求,加密Excel表格时也可以分不同方法来实现加密需求,Spire.XLS可提供18种不同的保护类型,如下表所示:
代码示例
1.加密Excel工作簿
【C#】
using Spire.Xls; namespace ProtectWorkbook_XLS { class Program { static void Main(string[] args) { //初始化一个工作簿并加载一个工作簿实例 Workbook book = new Workbook(); book.LoadFromFile("test.xls"); //为工作簿设置访问密码 book.Protect("myworkbook"); //保存并打开文档 book.SaveToFile("ProtectedWorkbook.xlsx", ExcelVersion.Version2010); System.Diagnostics.Process.Start("ProtectedWorkbook.xlsx"); } } }
运行该项目,生成文件(可在该项目文件夹bin>Debug中查看),点击打开该工作簿,如下图所示,密码设置完成。输入密码即可查看该文档。
2.解密Excel工作簿
【C#】
using Spire.Xls; namespace UnProtestedWordbook_XLS { class Program { static void Main(string[] args) { //初始化一个Workbook实例 Workbook workbook = new Workbook(); //输入密码并加载文档 workbook.OpenPassword = ("123"); workbook.LoadFromFile("test.xlsx", ExcelVersion.Version2013); //取消保护 workbook.UnProtect(); //保存并打开文档 workbook.SaveToFile("Output.xlsx", ExcelVersion.Version2013); System.Diagnostics.Process.Start("Output.xlsx"); } } }
运行程序后就没有密码保护了。
3. 加密Excel工作表
3.1 加密整个工作表(设置为只读)
【C#】
using Spire.Xls; namespace ProtectWorksheet_XLS { class Program { static void Main(string[] args) { //初始化一个工作簿并加载一个工作簿实例 Workbook book = new Workbook(); book.LoadFromFile("test.xlsx"); //指定需要加密的工作表 Worksheet sheet = book.Worksheets[0]; //为工作表设置启用编辑的密码 sheet.Protect("myworksheet", SheetProtectionType.None); //保存并打开文件 book.SaveToFile("ProtectedWorksheet.xlsx", ExcelVersion.Version2010); System.Diagnostics.Process.Start("ProtectedWorksheet.xlsx"); } } }
此时,需要编辑工作表时需要密码,正确输入密码后即可编辑。
3.2 指定可编辑单元格区域
【C#】
using Spire.Xls; namespace UnlockCell_XLS { class Program { static void Main(string[] args) { //初始化一个工作簿并加载一个实例 Workbook book = new Workbook(); book.LoadFromFile("test.xlsx"); //获取工作簿中第一个工作表 Worksheet sheet = book.Worksheets[0]; //设置工作表保护密码,并指定不受密码保护(即允许用户编辑)的单元格区域 sheet.AddAllowEditRange("AAA", sheet.Range["B2:E6"], ""); sheet.Protect("AAA", SheetProtectionType.All); //保存并打开文件 book.SaveToFile("UnlockCell.xlsx", ExcelVersion.Version2010); System.Diagnostics.Process.Start("UnlockCell.xlsx"); } } }
效果图:
此时,在指定区域的单元格可以任意编辑。对于指定区域外的单元格需要编辑时,须输入密码。
4. 解密工作表
【C#】
using Spire.Xls; namespace ProtectWorksheet_XLS { class Program { static void Main(string[] args) { //初始化一个工作簿并加载一个工作簿实例 Workbook book = new Workbook(); book.LoadFromFile("ProtectedWorksheet.xlsx"); //获取工作簿中第一个工作表 Worksheet sheet = book.Worksheets[0]; //设置撤销保护的密码 sheet.Unprotect("myworksheet"); //保存并打开文件 book.SaveToFile("UnProtectedWorksheet.xlsx", ExcelVersion.Version2010); System.Diagnostics.Process.Start("UnProtectedWorksheet.xlsx"); } } }
运行程序后工作表不再有密码保护。
5. 隐藏公式
【C#】
using Spire.Xls; namespace ProtectWorksheet_XLS { class Program { static void Main(string[] args) { //初始化一个工作簿并加载一个工作簿实例 Workbook book = new Workbook(); book.LoadFromFile("test.xlsx"); //获取工作簿中第一个工作表 Worksheet sheet = book.Worksheets[0]; //设置公式隐藏 ,并设置保护密码 sheet.AllocatedRange.IsFormulaHidden = true; sheet.Protect("123"); //保存并打开文件 book.SaveToFile("HideFormular.xlsx", ExcelVersion.Version2010); System.Diagnostics.Process.Start("HideFormular.xlsx"); } } }
效果对比:
Before
After
以上全部为本次关于设置Excel文档保护的内容,对于不同的需求,可以自行选择保护方式,感兴趣的话也可以尝试表格中列举的其他类型的保护方式。
本文完!
(如需转载,请注明出处)
相关推荐
在C#代码中,首先需要创建一个Excel Application对象,这允许你启动Excel进程并操作工作簿和工作表。 ```csharp using Excel = Microsoft.Office.Interop.Excel; Excel.Application excelApp = new Excel....
要导出数据到Excel并设置单元格类型,首先需要创建一个新的Excel工作簿对象,然后在其中添加工作表,接着就可以在工作表中写入数据了。以下是一个简单的示例: ```csharp using Excel = Microsoft.Office.Interop....
根据提供的文件信息,我们可以归纳出以下...综上所述,C#提供了强大的工具来操作Excel文档,包括创建新文档、打开已有文档、设置行高列宽、冻结窗格、设置边框和字体样式等。这些功能对于自动化处理Excel数据非常有用。
// 获取当前工作表 Range range = null;// 创建一个空的单元格对象 range = sheet.get_Range("A1", Missing.Value);// 获取单个单元格 range.RowHeight = 20; // 设置行高 range.ColumnWidth = 20; // 设置...
1. **创建工作簿和工作表**:初始化Excel文档,创建新的工作簿和工作表。 2. **设置单元格值**:在指定的行和列位置写入文本、数字或日期等数据。 3. **处理复杂表头**:利用NPOI的API进行单元格合并,创建多级标题...
3. 添加工作表:在工作簿中添加工作表,每个工作表对应Excel中的一个Tab页。 4. 写入数据:将你需要导出的数据写入工作表的指定单元格。可以逐个设置单元格的值,也可以一次性写入整行或整列。 5. 设置样式和字体...
总结来说,C#导出Excel文件涉及选择合适的库,如EPPlus,创建Excel包,添加工作表,以及将数据写入工作表。这个过程可以适应各种数据源和数据结构,使得C#成为处理Excel文件的强大工具。在实际应用中,可以根据具体...
2. **读取Excel文件**: 使用NPOI,你可以创建一个`HSSFWorkbook`对象来代表Excel工作簿,然后使用`HSSFSheet`对象表示单个工作表。遍历工作表的行和列,读取每个单元格的数据,并将它们存储在一个适当的数据结构(如...
通过上述分析,我们可以看到,使用C#读取Excel工作簿数据涉及多个步骤,包括启动Excel应用、打开工作簿、读取数据、构建数据结构以及关闭资源。这一过程虽然相对复杂,但借助Microsoft Office Interop Excel库,...
在链接的博客文章中,作者可能详细讲解了如何使用C#和NPOI库创建Excel文件并导出数据的步骤,包括创建工作簿、工作表,插入数据,设置样式等,并给出了具体代码示例。通过阅读这个博客,你可以获取到更具体的操作...
本教程将深入探讨如何使用C#创建Excel文件,包括设置下拉列表、调整列宽、设置单元格格式以及填充背景色。首先,我们需要了解几个关键库,如EPPlus、NPOI或ClosedXML,它们简化了与Excel文件交互的过程。 EPPlus是...
Npoi是一个强大的.NET库,主要用于读取和写入Microsoft Office文件,尤其是Excel文档。这个库在处理大量数据或需要自定义格式的Excel报告时尤其有用。在本篇中,我们将深入探讨如何使用Npoi结合CSS样式来设置Excel...
在类的内部,我们可以使用Excel Interop来创建Excel应用程序和工作簿对象,然后使用工作簿对象来创建工作表和查询表。通过查询表,我们可以将数据库中的数据导出到Excel文件中。 在导出Excel文件时,我们可以使用...
接下来,我们需要打开 Excel 应用程序,以便我们可以获取当前活动的工作簿和工作表。我们可以使用以下代码来实现这一点: ``` Excel.Application app = (Excel.Application)System.Runtime.InteropServices.Marshal....
创建Excel工作簿的过程涉及到创建Excel应用程序实例,然后创建一个新的工作簿。以下是一个简单的示例: ```csharp using Microsoft.Office.Interop.Excel; // 初始化Excel应用程序 Application excel = new ...
本教程将指导你如何实现一个功能,即在Excel工作表中显示用户选择的图片。这通常涉及到对Microsoft Office Interop库的使用,如Microsoft.Office.Interop.Excel,它允许C#代码与Excel应用程序进行交互。 首先,你...
在C#中嵌入Excel功能,无论是koogra还是myxls,都需要理解Excel文件的基本结构,如工作簿、工作表、行、列等概念。同时,熟悉Excel的公式和函数也是必不可少的,这将帮助你更好地利用这些控件进行数据处理和计算。...
`ExcelWorkbook`是Excel文件中的工作簿,`ExcelWorksheet`则是工作表。可以通过`ExcelPackage.Workbook`属性创建和访问它们。 ```csharp var worksheet = package.Workbook.Worksheets.Add("Sheet1"); ``` 4. ...
写入Excel文件的流程类似,但需要创建新的工作簿和工作表对象,然后向其中添加行和单元格数据。可以设置单元格的样式,包括字体、颜色、对齐方式等。 4. **示例代码** ```csharp using NPOI.HSSF.UserModel; ...
针对这一问题,`c#无需安装office就可原格式读取excel文件`的方法应运而生,允许开发者在没有Office的情况下,仍能以原始格式处理Excel文档。 这种技术的核心在于使用第三方库或.NET Framework自带的组件。其中一个...