Eu tento abrir senha protegida .xlsx
arquivos (formato Excel 2007) sem digitar a senha manualmente. Eu instalei o Excel 2003 e o Pacote de Compatibilidade do Microsoft Office que converte o arquivo ao abrir.
O código a seguir funciona, mas solicita a senha.
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);
Se eu usar o mesmo código para abrir um .xls
Arquivo (Excel 2003), funciona sem solicitar a senha. Abertura .xlsx
arquivos sem proteção por senha também funciona bem.
Como é possível abrir senha protegida .xlsx
arquivos sem solicitar a senha com o Excel 2003 eo Microsoft Office Compatibility Pack?
O truque de um problema semelhante alterando o argumento readonly (3rd) para true
ExcelWorkbook = ExcelApp.Workbooks.Open("C:\temp\test.xlsx",MissingValue, true, MissingValue,pwd);
não funciona aqui.
Respostas:
5 para resposta № 1Isso pode ser tarde, mas para qualquer futura pessoa com a Interop, para mim funcionou assim:
Para abrir para escrever
var WFile = new Excel.Application();
Excel.Workbook Wbook = WFile.Workbooks.Open("myFilepath", ReadOnly: false, Password: "mypassword");
Para abrir como somente leitura
var WFile = new Excel.Application();
Excel.Workbook Wbook = WFile.Workbooks.Open("myFilepath", ReadOnly: true, Password: "mypassword");