Я загружаю файл Excel с паролем, используя библиотеку epplus.Часть загрузки работает нормально.
public ActionResult DownloadExcel()
{
string sFileName = string.Empty;
using (ExcelPackage package = projectBL.DownloadExcel(ID, id1, id3, id4, id5))
{
System.Net.Mime.ContentDisposition cd = new System.Net.Mime.ContentDisposition
{
FileName = package.File.Name,
};
Response.Headers.Add("Content-Disposition", cd.ToString());
return File(package.GetAsByteArray("password"), "application/vndopenxmlformats-officedocument.spreadsheetml.sheet");
}
}
Но всякий раз, когда я пытаюсь загрузить этот защищенный паролем файл, он выдает сообщение об ошибке ниже
Файл не является допустимым файлом пакета,Если файл зашифрован, укажите пароль в конструкторе.
Итак, я решил вышеуказанную ошибку, предоставив пароль, необходимый для чтения файла.Ниже приведен код для того же самого.
public ActionResult UploadExcel()
{
if (Request.Form.Files != null && Request.Form.Files.Count > 0)
{
var fileObject = Request.Form.Files[0];
string fileName = ContentDispositionHeaderValue.Parse(fileObject.ContentDisposition).FileName.Trim('"');
var Stream = fileObject.OpenReadStream();
ExcelPackage package = new ExcelPackage(Stream,"password");
projectBL.SaveData(package);
return Json("Records Saved Succesfully.");
}
}
Однако после предоставления пароля я все еще не могу прочитать / загрузить файл Excel из-за ошибки ниже
Потокдолжен быть прочитан / записан
Так что мой вопрос, как я могу прочитать файл, защищенный паролем, используя Stream.Я использую этот код в веб-API.
Любая помощь по этому вопросу приветствуется!