在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");