Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
Listmaier
Contributor II
Contributor II

Capturar nomes das sheets de um Excel dinamicamente sem usar o ODBC

Boa tarde comunidade,

Preciso de uma super ajuda de vocês por favor.

Desde já agradeço a todos!

Tenho esse código que captura todas as sheets do Excel dinamicamente que funciona perfeitamente quando uso o ODBC, mas tenho uma situação agora que não consigo usar o ODBC no ambiente de qualidade na minha empresa. 

Tem como pegar essas sheets dinamicamente sem usar o ODBC?

Tenho que conectar em uma pasta tipo : FOLDER_EXT_GLOBAL

LIB CONNECT TO 'Excel Files2';

tables:
SQLTables;
DISCONNECT;

Tables1:
load Distinct
*,
replace(TABLE_NAME,chr(39),'') as NEW
resident tables;

DROP Table tables;

let var=NoOfRows('Tables1');

FOR i = 0 to $(var)-1

let sheetName=subfield(peek('NEW', i,'Tables1'),'$',1);


Data:
LOAD Distinct
*,
'$(sheetName)' as Des_sheet
FROM [lib://Extract_Import/ Qlink Sense Test.xlsx]
(ooxml, embedded labels, table is [$(sheetName)]);


NEXT i

DROP Table Tables1;

Store Data into 'lib://QVD_Extract/fato.qvd';

DROP Table Data;

1 Reply
rbarbosa
Contributor III
Contributor III

Você pode usar as funções

FileBaseName() - https://help.qlik.com/pt-BR/qlikview/May2022/Subsystems/Client/Content/QV_QlikView/Scripting/FileFun...

ou

FileName() -https://help.qlik.com/pt-BR/qlikview/May2022/Subsystems/Client/Content/QV_QlikView/Scripting/FileFun...

Depois basta filtrar a lista e incluir no seu loop.

 

Se quiser incrementar um pouco mais, pode usar também a função filetime():

https://help.qlik.com/pt-BR/qlikview/May2022/Subsystems/Client/Content/QV_QlikView/Scripting/FileFun...

 

Com ela você pode pegar a data do arquivo mais recente

Rodolfo Barbosa