Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
pauloandre
Contributor 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é

Tags (1)
6 Replies
fosuzuki
Valued Contributor II

Re: Leitura de xls protegido por senha

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
Contributor II

Re: Leitura de xls protegido por senha

Fernando,

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

Paulo

fosuzuki
Valued Contributor II

Re: Leitura de xls protegido por senha

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

Re: Leitura de xls protegido por senha

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

fosuzuki
Valued Contributor II

Re: Leitura de xls protegido por senha

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

Re: Leitura de xls protegido por senha

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"