1
我尝试在不手动输入密码的情况下打开受密码保护的.xlsx
文件(Excel 2007格式)。我已经安装了Excel 2003和Microsoft Office Compatibility Pack,可以在打开文件时转换文件。使用C#中的密码打开EXCEL(.xlsx)
以下代码有效,但会提示输入密码。
Microsoft.Office.Interop.Excel.Application ExcelApp;
Microsoft.Office.Interop.Excel.Workbook ExcelWorkbook;
ExcelApp = new Microsoft.Office.Interop.Excel.Application();
Object pwd = "xxx";
Object MissingValue = System.Reflection.Missing.Value;
ExcelWorkbook = ExcelApp.Workbooks.Open("C:\\temp\\test.xlsx",MissingValue, MissingValue, MissingValue,pwd);
如果我使用相同的代码打开一个文件.xls
(Excel 2003中),它的工作原理,而不会提示输入密码。打开.xlsx
没有密码保护的文件也可以正常工作。
如何在不提示使用Excel 2003和Microsoft Office兼容包的密码的情况下打开受密码保护的.xlsx
文件?
从a similar problem改变只读参数(3)为真
ExcelWorkbook = ExcelApp.Workbooks.Open("C:\\temp\\test.xlsx",MissingValue, true, MissingValue,pwd);
诀窍并不在这里工作。
可能重复[在C++或C#中打开密码保护的Excel文件提示输入密码,即使我已经通过一个参数的密码](http://stackoverflow.com/questions/29204623/opening-password-protected-excel-file-in-c-or-c-sharp-prompts-for-password-eve) –
不,它的有点不同,而将readonly参数设置为true的solvotion在这里不起作用。这里的问题是使用Microsoft Office兼容包。 – tonirush
该问题/答案意味着在打开'Open'的调用中指定了更多的“MissingValue”参数。您是否尝试添加与该问题/答案中相同的号码? – ChrisF