gpt4 book ai didi

c# - 使用电子表格工具打开 protected 工作簿

转载 作者:行者123 更新时间:2023-11-30 19:09:10 25 4
gpt4 key购买 nike

我正在尝试确定打开 protected 工作表的最佳方式,如果可能的话。我对 spreadsheetgear 的文档做了一些研究,但我还没有真正找到解决方案。

我遇到了两个我认为可能会有所帮助的选项。 Spreadsheetgear 确实有一个 Unprotect(string password) 方法,但截至目前我无法让它工作。我让用户在他们的本地系统上选择一个工作簿并将其上传到服务器。当我尝试打开和读取文件时,页面中断并抛出异常

Corrupt OpenXML document.

截至目前,我像这样打开未 protected 工作簿

byte[] file = Session["FileUpload"] as byte[];
using (MemoryStream fileStream = new MemoryStream(file))
{
IWorkbook workbook = Factory.GetWorkbookSet().Workbooks.OpenFromStream(fileStream);
.....
}

这在未 protected 工作簿上工作正常,但当它受到保护时,我收到损坏的文档错误。理想情况下,我想同时取消保护和打开,但我不确定如何完成此操作。OpenFromStream 确实有一个重载,您可以在其中提供一个字符串作为密码,但我试过了那里没有运气。这些方法的文档不是很好,所以我不确定我是否正确使用了它们。

最佳答案

更新:

SpreadsheetGear 2017 (V8) 添加了对用于 Open XML(*.xlsx 和 *.xlsm)文件的新工作表和工作簿保护/加密选项的支持。如果您使用的是 SpreadsheetGear 2012 并且在打开受工作表和/或工作簿保护的文件时遇到问题,请尝试下载 SpreadsheetGear 2017(30-day trial for evaluatorsLicensed users)。


您可能会遇到一个已知的限制,该限制将很快得到解决。 SpreadsheetGear 2012 的工作簿和工作表保护实现基于 Excel 2007(ECMA-376 第一版)。然而,Microsoft 已经在 Open XML (XLSX/XLSM) 文件格式规范的更高版本中添加了许多新的工作簿保护选项以及更强大的加密形式。 SpreadsheetGear 2012 尚未添加对这些新文件格式选项和加密形式的支持,因此当您尝试打开这些类型的工作簿时,您可能会收到“损坏的 OpenXML 文档”或“不支持的加密类型”异常,前者是接收。

好消息是,与 Excel 2010/2013 兼容的密码保护将添加到 SpreadsheetGear 的下一个主要版本 V8 中,该版本定于今年晚些时候发布,但发布时间可能会推迟。

在发布 V8 之前,一种解决方法是使用 Excel 2010 或 Excel 2013 取消保护任何工作簿和单个工作表,然后使用 SpreadsheetGear 本身或 Excel 2007 重新保护这些工作簿/工作表,这将使用旧的保护/加密选项。还有一些方法可以破解 Windows 注册表,告诉 Excel 2010 和 Excel 2013 使用 Excel 2007 中使用的加密选项保存工作簿(参见 link ),但这不是一个很好的解决方案 IMO。

关于c# - 使用电子表格工具打开 protected 工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32122560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com