首页 文章

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

提问于
浏览
3

我尝试打开密码保护的 .xlsx 文件(Excel 2007格式),而无需手动输入密码 . 我已经安装了Excel 2003和Microsoft Office Compatibility Pack,它在打开时转换文件 .

以下代码有效,但它提示输入密码 .

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将readonly参数(3rd)更改为true的技巧

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

在这里不起作用 .

1 回答

  • 7

    这可能会迟到,但对于任何未来的Interop用户,对我来说它的工作方式如下:

    To open to write

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

    To open as read-only

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

相关问题