在C#中用密码打开EXCEL(.xlsx)

我尝试打开密码保护的.xlsx文件(Excel 2007格式),而无需手动input密码。 我已经安装了Excel 2003和打开时转换文件的Microsoft Office兼容包 。

下面的代码工作,但它提示input密码。

 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),它不会提示input密码。 打开.xlsx文件没有密码保护也正常工作。

如何在不提示使用Excel 2003和Microsoft Office兼容包的情况下打开密码保护的.xlsx文件?

类似的问题把只读参数(3rd)改为true

 ExcelWorkbook = ExcelApp.Workbooks.Open("C:\\temp\\test.xlsx",MissingValue, true, MissingValue,pwd); 

在这里不起作用。

这可能会很晚,但是对于任何未来的Interop人来说,对我来说这是这样工作的:

打开写

 var WFile = new Excel.Application(); Excel.Workbook Wbook = WFile.Workbooks.Open("myFilepath", ReadOnly: false, Password: "mypassword"); 

以只读方式打开

 var WFile = new Excel.Application(); Excel.Workbook Wbook = WFile.Workbooks.Open("myFilepath", ReadOnly: true, Password: "mypassword");