Estou enfrendando um problema de leitura de informações de planilhas (Excel) que estejam protegidas por senha em Java. Testei duas API’s Java (POI e JExcelAPI) mas não encontrei uma forma de desproteger ou desbloquear tais planilhas para que eu possa lê-la posteriormente.
Alguém poderia me dar uma força para resolução deste problema em Java ? Qualquer dica ou ajuda será bem vinda.
Então, eu já tinha acessado este site e testado tal exemplo, mas não deu certo! Foi lançado uma Exception (ProtectedException) ao instanciar o primeiro objeto WorkBook . Neste exemplo, cheguei até a utilizar o WorkBookSettings adicinando o encoding, e setando tal wbSettings na criação do Workbook, mas tbm não deu certo!
Se a planilha possui senha, imagino dois cenários:
Vc. conhece a senha e, portanto, está autorizado a abrí-la
Neste caso, acho que é melhor usar uma macro em VBA para abrir a planilha e salvá-la sem proteção em uma área temporária para processamento via POI ou outra
Vc. não tem a senha, e, portanto, tem algo de muito errado em seu requisito de negócio. Em determinados paises vc. poderia ser preso por tentar usar mecanismo que contorne a proteção de um conteúdo protegido.
As planilhas são criptografadas com o algoritmo RC4.
Antigas planilhas usavam 40 bits; as atuais usam 128 bits.
Pode ser que o mecanismo de derivação da chave a partir da senha tenha sido alterado.