用这个组件-Spire.XLS,亲测有效,支持多种加密" />
乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > C#如何对<em>Excel</em>文件进行<em>加密</em>和解

C#如何对<em>Excel</em>文件进行<em>加密</em>和解

作者:乔山办公网日期:

返回目录:excel表格制作


你别说你不晓得密码哈,如果晓得密码,连接时可以设置用户名和密码。

用这个组件-Spire.XLS,亲测有效,支持多种加密/保护方式,实现方案:

C# Excel 文档e799bee5baa6e4b893e5b19e365保护

加密代码:

//初始化一个Workbook实例并加载文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("Test.xlsx");
////使用密码保护工作薄
//workbook.Protect("123");
//密码保护工作薄,并保护工作薄结构
workbook.Protect("123",true,true);
workbook.SaveToFile("ProtectExcel.xlsx", ExcelVersion.Version2013);

解密代码:

//加载Excel文档
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");
//获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
//输入密码取消保护工作表
sheet.Unprotect("123");
//保存文档workbook.SaveToFile("Result.xlsx", ExcelVersion.Version2013);

软糖来回答吧。

先上代码

 /// <summary>
        /// 加密数据(从内存到文件)
        /// </summary>
        public static void Encrypt()
        {
            //创建一个e68a84e8a2ade799bee5baa6335文件对象,文件的模式是创建新文件,文件的访问权限是可写!
            FileStream fs = new FileStream(@"J:\works\Demo.txt", FileMode.Create, FileAccess.Write);
            Console.WriteLine("请输入你想要进行加密的字符串:");
            string Input = Console.ReadLine();
            //将字符串转换成字节
            byte[] YourInputStorage = System.Text.Encoding.UTF8.GetBytes(Input);
            //创建一个DES算法的加密类
            DESCryptoServiceProvider MyServiceProvider = new DESCryptoServiceProvider();
            //从DES算法的加密类对象的CreateEncryptor方法,创建一个加密转换接口对象
            ICryptoTransform MyTransform = MyServiceProvider.CreateEncryptor
                (new byte[]{100,110,120,130,100,110,120,130},
                 new byte[]{100,110,120,130,100,110,120,130});
            //CryptoStream对象的作用是将数据流连接到加密转换的流
            CryptoStream MyCryptoStream = new CryptoStream(fs, MyTransform, CryptoStreamMode.Write);
            //将字节数组中的数据写入到加密流中
            MyCryptoStream.Write(YourInputStorage,0,YourInputStorage.Length);
            //关闭加密流对象
            MyCryptoStream.Close();
        }

        /// <summary>
        /// 解密数据(从文件到内存)
        /// </summary>
        public static void Decrypt()
        {
            FileStream fs = new FileStream("Demo.txt", FileMode.Open, FileAccess.Read);
            DESCryptoServiceProvider MyServiceProvider = new DESCryptoServiceProvider();
            //从DES算法的加密类对象的CreateEncryptor方法,创建一个解密转换接口对象
            //[对称算法的机密密钥]必须是加密时候的[对称算法的机密密钥]
            //[对称算法的初始化向量]必须是加密时候的[对称算法的初始化向量]
            //如果不一样,则会抛出一个异常。
            ICryptoTransform MyTransform = MyServiceProvider.CreateDecryptor
                (new byte[]{100,110,120,130,100,110,120,130},
                 new byte[]{100,110,120,130,100,110,120,130});
            CryptoStream MyCryptoStream = new CryptoStream(fs, MyTransform, CryptoStreamMode.Read);
            byte[] YourInputStorage = new byte[1000];
            int len = MyCryptoStream.Read(YourInputStorage, 0, YourInputStorage.Length);
            Console.WriteLine("你刚才输入的字符串是:");
            Console.WriteLine(System.Text.Encoding.UTF8.GetString(YourInputStorage,0,len));
        }

主要就是System.Security.Cryptography命名空间和System.IO命名空间。


如满意,请采纳,谢谢。



你拥有修改读写权限的话,进“工具”——“选项”——“安全性”,把密码去丢就行了。
没有修改读写权限的话,找个去excel密码的软件去密。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网