作者:乔山办公网日期:
返回目录: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密码的软件去密。