C# 在c语言中处理大量excel工作簿时如何跳过几个受密码保护的excel文件#
是否可以跳过c#中受密码保护的Excel文件 我不知道这些文件的密码,因为所有这些文件都应该自动处理,程序需要能够跳过所有询问密码的文件,因为询问用户输入密码的提示将中断程序 这是我打开Excel文件的代码:C# 在c语言中处理大量excel工作簿时如何跳过几个受密码保护的excel文件#,c#,windows,excel,C#,Windows,Excel,是否可以跳过c#中受密码保护的Excel文件 我不知道这些文件的密码,因为所有这些文件都应该自动处理,程序需要能够跳过所有询问密码的文件,因为询问用户输入密码的提示将中断程序 这是我打开Excel文件的代码: Excel.Workbook workbook = app.Workbooks.Open(fullFileName, ReadOnly: false, Password: ""); 您可以使用它,它相对简单,唯一的问题是要知道是因为保护还是其他原因引发了异常,下面是代码: public
Excel.Workbook workbook = app.Workbooks.Open(fullFileName, ReadOnly: false, Password: "");
您可以使用它,它相对简单,唯一的问题是要知道是因为保护还是其他原因引发了异常,下面是代码:
public bool IsXlsxPasswordProtected(string fileName)
{
bool encrypted = false;
FileStream fs = new FileStream(fileName, FileMode.Open);
ExcelPackage pack = new ExcelPackage();
try
{
pack.Load(fs);
}
catch (Exception ex)
{
/// maybe there is better way to know if exception is because file is protected
/// with password, idealy EPP should raise dedicated exception type
/// e.g. PasswordProtectedException
if (ex.InnerException != null && ex.InnerException is FileFormatException)
encrypted = true;
else
throw;
}
return encrypted;
}
您可以使用它,它相对简单,唯一的问题是要知道是因为保护还是其他原因引发了异常,下面是代码:
public bool IsXlsxPasswordProtected(string fileName)
{
bool encrypted = false;
FileStream fs = new FileStream(fileName, FileMode.Open);
ExcelPackage pack = new ExcelPackage();
try
{
pack.Load(fs);
}
catch (Exception ex)
{
/// maybe there is better way to know if exception is because file is protected
/// with password, idealy EPP should raise dedicated exception type
/// e.g. PasswordProtectedException
if (ex.InnerException != null && ex.InnerException is FileFormatException)
encrypted = true;
else
throw;
}
return encrypted;
}