Azure Blob 存储:从 Excel 工作簿中删除密码
Posted
技术标签:
【中文标题】Azure Blob 存储:从 Excel 工作簿中删除密码【英文标题】:Azure Blob Storage: Remove password from excel workbook 【发布时间】:2021-11-20 00:01:23 【问题描述】:我在 Azure Blob 存储中保存了一个受密码保护的 Excel 工作簿,我想删除密码并将文件上传回 Blob。我编写了密码来保护 blob 中的 excel 文件的代码,但我是 C# 新手,将受密码保护的文件作为流打开会产生错误。
有没有人成功地从保存在 Azure Blob 存储中的 Excel 文件中删除密码?
//Open Excel on blob
BlobServiceClient blobServiceClient = new BlobServiceClient(appsetting);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
BlobClient blobClient = containerClient.GetBlobClient(fileName);
//Password protect file
using (var stream = await blobClient.OpenReadAsync(new BlobOpenReadOptions(true)))
using (ExcelPackage package = new ExcelPackage(stream))
//Save password protected file
package.Save(password);
MemoryStream ms = new MemoryStream(package.GetAsByteArray());
ms.Position = 0;
//Delete the unprotected excel file
blobClient.DeleteIfExists();
//Upload password protected excel file
BlobClient outputBlob = containerClient.GetBlobClient(fileName);
outputBlob.Upload(ms);
【问题讨论】:
在本地下载文件然后使用标准 Excel 方法删除密码可能更容易。您的标签中有 EPPlus - 您在使用它吗?下面是使用 EPPlus ***.com/questions/44978634/… 打开密码保护文件的示例 谢谢尼克,我昨天解决了这个问题并使用了这种方法。是的,使用 EPPlus。在 Azure 上,我能够在临时文件夹中创建文件并将 blob 下载到我在临时文件夹中创建的文件中。 【参考方案1】:通过保存到 Azure 上的临时文件夹然后打开文件来解决。
//Create temp path
string tempPath = Path.GetTempPath();
tempFullPath = tempPath + fileName;
//Download blob
blobClient.DownloadTo(tempFullPath);
【讨论】:
感谢您返回解决方案 - 您应该能够接受这个作为答案以上是关于Azure Blob 存储:从 Excel 工作簿中删除密码的主要内容,如果未能解决你的问题,请参考以下文章
源数据集中的动态工作表名称:Azure 数据工厂上的(Excel(Blob 存储))。 - 错误:请为您的数据集选择一个工作表
使用 epplus 从 blob 触发 azure 函数访问 excel 文件
从 Azure Excel blob 文件将数据导入 SQL Server
Azure 逻辑应用可以从存储帐户中读取 excel 文件吗?