Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
pericles_silva
New Contributor III

Exportar N objetos de tabela para N planilhas no Excel

Boa tarde.

Estou precisando criar uma funcionalidade onde serão exportadas N tabelas que existem dentro do meu documento Qlikview para N planilhas de um Excel.

Uma ação de um botão onde, ao clicar, realizasse essa função.

Alguém ja fez, sabe se é possível fazer isso e tem algum exemplo?

Att,

Péricles.

1 Solution

Accepted Solutions
fernando_tonial
Valued Contributor

Re: Exportar N objetos de tabela para N planilhas no Excel

Olá, veja o arquivo anexo.

Abraços.

Tonial.

12 Replies
aderlanrm
Valued Contributor

Re: Exportar N objetos de tabela para N planilhas no Excel

Olá Pericles,

No editor de módulos:

sub Exportar

    set obj = ActiveDocument.GetSheetObject("TB02")

    obj.Export "c:\Exportar.xls",","

end sub

No Script:

STORE Exportar into c:\Exportar.xls (txt, delimiter is ',');

Abraço.

Employee
Employee

Re: Exportar N objetos de tabela para N planilhas no Excel

"n" Planilhas ou "n" abas de uma mesma planilha?

Se for o 2o caso segue um exemplo que cria uma planilha e vai "colando" varios objetos na mesma

sub ExportaDRF

        Set objExcelApp = CreateObject("Excel.Application")

        objExcelApp.Visible = true

        objExcelApp.DisplayAlerts = false

        Set objExcelDoc = objExcelApp.Workbooks.Add("c:\temp\ExportaDF2.xltm")

        ActiveDocument.GetSheetObject("CH93").CopyTableToClipboard false

        objExcelDoc.Sheets(1).Paste

        ActiveDocument.GetSheetObject("CH56").CopyTableToClipboard true

        objExcelDoc.Sheets(1).cells(5,1).Select

        objExcelDoc.Sheets(1).Paste

       

        set objSheet = objExcelDoc.Sheets(objExcelDoc.Sheets.Count)

        objSheet.Name = "Resumo"

       

        ' Lista de objetos que compoem o cabecalho

        Dim idCab(3)

        idCab(0) = "CH93"

        idCab(1) = "CH92"

        idCab(2) = "CH91"

        idCab(3) = "CH90"   

       

        for i = 0 to objSel.Count - 1

            ActiveDocument.Fields("NumeroEmpresa").Select objSel.Item(i).text

            ActiveDocument.GetApplication.WaitForIdle

                               

            for j = 0 to UBOUND(idCab)

               ' Copia grafico para o cabecalho do relatorio           

                ActiveDocument.GetSheetObject(idCab(j)).CopyTableToClipboard false

                objExcelDoc.Sheets(1).cells(j+1,1).Select

                objExcelDoc.Sheets(1).Paste

            next

            ActiveDocument.GetSheetObject("CH56").CopyTableToClipboard true

            objExcelDoc.Sheets(1).cells(5,1).Select

            objExcelDoc.Sheets(1).Paste

            set objSheet = objExcelDoc.Sheets(objExcelDoc.Sheets.Count)

            objSheet.Name = objSel.Item(i).text

           

        next

        ActiveDocument.fields("NumeroEmpresa").SelectValues objSel

        ActiveDocument.GetApplication.WaitForIdle

        ActiveDocument.GetSheetObject("CH59").CopyTableToClipboard true

        objExcelDoc.Sheets("Plan1").Paste

        objExcelDoc.Sheets("Plan1").Rows("1:50").RowHeight = 15

        objExcelDoc.Sheets("Plan1").Columns("A:Z").EntireColumn.AutoFit

        Msgbox("Exportação Finalizada")

    end if

end sub

pericles_silva
New Contributor III

Re: Exportar N objetos de tabela para N planilhas no Excel

Aderlan não entendi aonde se coloca o código STORE Exportar into c:\Exportar.xls (txt, delimiter is ',');

De qualquer forma, parece que esse código só funciona para 1 objeto de tabela. Eu tenho umas 6 ou 7 tabelas, e ao clicar no botão, o QV precisa criar apenas 1 arquivo XLS, e cada tabela do QV precisa instanciar uma planilha dentro do XLS, ou seja, no meu caso 6 planilhas.

pericles_silva
New Contributor III

Re: Exportar N objetos de tabela para N planilhas no Excel

Clever, 1 arquivo do Excel com N planilhas.

Você deve chamar as planilhas de abas. Se for isso são N abas (ou Plan em inglês).

Tenho 6 tabelas dentro do QV e é preciso criar 1 arquivo Excel com 6 planilhas.

aderlanrm
Valued Contributor

Re: Exportar N objetos de tabela para N planilhas no Excel

Olá Pericles,

O STORE é usado no script de carga do QVW, é útil quando precisamos gerar um extrator e/ou direcionar diferentes tipos de arquivos em caminhos diferentes, ou seja, integração entre sistemas.

Lhe mostrei duas formas de gerar aquivos, o exemplo do Clever resolve o seu problema, já que você precisa de um botão em tela para gerar 1 XLS com 6 planilhas, basta fazer alguns ajustes no código, colocar no editor de módulo e fazer a devida associação ao botão em questão.

Abraço.

fernando_tonial
Valued Contributor

Re: Exportar N objetos de tabela para N planilhas no Excel

Olá Pericles,

Segue o endereço do blog do Stefan WALTHER, ele fez isso através de macro e disponibiliza esse QVW e explica como funciona.

http://www.qlikblog.at/971/qliktip-32-exporting-multiple-objects-single-excel-document/

Abraços.

Tonial.

pericles_silva
New Contributor III

Re: Exportar N objetos de tabela para N planilhas no Excel

Clever, teria como você adaptar para mim seu comando de Exportar no arquivo que segue em anexo?

Não consegui aplicar. Tem um "End If" perdido no código. Eu comentei mas será que falta mais algo?

É um pequeno arquivo de teste.

pericles_silva
New Contributor III

Re: Exportar N objetos de tabela para N planilhas no Excel

E ae Tonial?

Valeu pelo retorno. Ou o link está quebrado ou o site está fora do ar (pelo menos agora).

Se conseguir abrir o site, salva o HTML dele e zipa aqui pra gente?

Abç

pericles_silva
New Contributor III

Re: Exportar N objetos de tabela para N planilhas no Excel

Aderlan, seu código funcionou mas vou precisar alem disso.

- Preciso renomear planilhas.

- Como seria armazenar mais objetos de tabela em uma nova planilha do arquivo Excel no seu código?

abç