Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
pauloandre
Creator II
Creator II

Leitura de xls protegido por senha

Prezados,

na construção do script preciso ler arquivo xls protegido por senha, porem ao ler o arquivo em 'Dados de Arquivo/Arquivos de Tabela' é apresentada seguinte mensagem: 'O arquivo Excel não pode ser lido porque está encriptado'.

gastaria de saber se existe uma possibilidade de ler esse arquivo xls.

Paulo André

6 Replies
fosuzuki
Partner - Specialist III
Partner - Specialist III

Paulo,

Interessante que hoje fiz um teste com arquivo XLSX e o QV consegue ler os dados pela opção de Arquivo de Tabela. Então uma opção talvez mais simples é migrar o arquivo para formato XLSX.

Se vc não puder migrar o formato do arquivo, será necessário criar uma conexão ODBC e usar macro para criar uma instância do Excel. Há um tempo atrás descobri isso aqui na comunidade, mas não lembro mais a thread para dar os créditos. Segue QVW e XLS de exemplo em anexo. A senha de proteção do XLS é "qv".

Alguns pontos importantes:

- no módulo de macro, selecionar System Access

- no painel inferior da tela de script, selecionar a aba Settings e marcar a opção 'Can Execute external programs'.

pauloandre
Creator II
Creator II
Author

Fernando,

o xls enviado possui segurança apenas pra alteração correto? no meu caso existe proteção para abrir o arquivo.

Paulo

fosuzuki
Partner - Specialist III
Partner - Specialist III

Na macro, o codigo VBS para abrir o XLS tem que incluir a senha:

myExcelWorker.Workbooks.Open sFileName,,,,"SenhaDoExcel"

Descobri isso agora. Legal!

Not applicable

Fernando, como faço para abrir um xlsx com senha na abertura do arquivo?

fosuzuki
Partner - Specialist III
Partner - Specialist III

fpedrassani, tudo o q eu sei está aí em cima... acho q o QV por padrão não conseguirá abrir o seu arquivo, e aí acho q vc terá q recorrer ao esquema com a macro.

Not applicable

Certo Fernando,

inseri aquela linha com a senha no final, e o arquivo continua sem ler o xlsx, inclusive não consigo nem  carregá-lo via Arquivos de Tabela. Segue abaixo a macro:

public myExcelWorker

function OpenXLS(sFileName)

          ' Create an Excel instance

          Set myExcelWorker = CreateObject("Excel.Application")

 

          ' Disable Excel UI elements

          myExcelWorker.DisplayAlerts = False

          myExcelWorker.AskToUpdateLinks = False

          myExcelWorker.AlertBeforeOverwriting = False

 

          myExcelWorker.Workbooks.Open(sFileName),,,, 66264

end function

function CloseXLS()

          myExcelWorker.ActiveWorkBook.Close False

 

          myExcelWorker.Quit

          set myExcelWorker = Nothing

end function

se coloco a senha dentro de aspas duplas acusa erro na linha "myExcelWorker.ActiveWorkBook.Close False"