Ir para conteúdo
  • 0

Conexão com Governo


carlosalbertojr3

Pergunta

  • Alunos

Pessoal, bom dia!

Tudo bem?

Estou tentando conectar o Power Query ao site da Comissão de Valores Imobiliários, porém não consigo extrair o ZIP no Power Query.

Esse é o link do arquivo que preciso trabalhar: http://sistemas.cvm.gov.br/cadastro/SPW_CIA_ABERTA.ZIP

Já tentei algumas funções, mais não consegui.


Nessa função abaixo, retorna esse erro:

let
    Source = Web.Contents("http://sistemas.cvm.gov.br/cadastro/SPW_CIA_ABERTA.ZIP"),

    DecompressFiles = (ZIPFile, Position, FileToExtract, DataSoFar) => 
    let 
    
    MyBinaryFormat = try BinaryFormat.Record([DataToSkip=BinaryFormat.Binary(Position), 
                      MiscHeader=BinaryFormat.Binary(18), 
                      FileSize=BinaryFormat.ByteOrder(BinaryFormat.UnsignedInteger32, ByteOrder.LittleEndian),
                      UnCompressedFileSize=BinaryFormat.Binary(4),
                      FileNameLen=BinaryFormat.ByteOrder(BinaryFormat.UnsignedInteger16, ByteOrder.LittleEndian),
                      ExtrasLen=BinaryFormat.ByteOrder(BinaryFormat.UnsignedInteger16, ByteOrder.LittleEndian),
                      TheRest=BinaryFormat.Binary()]) otherwise null,

    MyCompressedFileSize = try MyBinaryFormat(ZIPFile)[FileSize]+1 otherwise null,

    MyFileNameLen = try MyBinaryFormat(ZIPFile)[FileNameLen] otherwise null,

    MyExtrasLen = try MyBinaryFormat(ZIPFile)[ExtrasLen] otherwise null,

    MyBinaryFormat2 = try BinaryFormat.Record([DataToSkip=BinaryFormat.Binary(Position), Header=BinaryFormat.Binary(30), Filename=BinaryFormat.Text(MyFileNameLen), Extras=BinaryFormat.Binary(MyExtrasLen), Data=BinaryFormat.Binary(MyCompressedFileSize), TheRest=BinaryFormat.Binary()]) otherwise null,

    MyFileName = try MyBinaryFormat2(ZIPFile)[Filename] otherwise null,

    GetDataToDecompress = try MyBinaryFormat2(ZIPFile)[Data] otherwise null,

    DecompressData = try Binary.Decompress(GetDataToDecompress, Compression.Deflate) otherwise null,

    NewPosition = try Position + 30 + MyFileNameLen + MyExtrasLen + MyCompressedFileSize - 1 otherwise null,

    AsATable = Table.FromRecords({[Filename = MyFileName, Content=DecompressData]}),

    #"Appended Query" = if DecompressData = null then DataSoFar else if (MyFileName = FileToExtract) then AsATable else
            if (FileToExtract = "") and Position <> 0 then Table.Combine({DataSoFar, AsATable})
            else AsATable    

    in

     if  (MyFileName = FileToExtract) or (#"Appended Query" = DataSoFar) then

       #"Appended Query"

     else 

       @DecompressFiles(ZIPFile, NewPosition, FileToExtract, #"Appended Query"),

    MyData = DecompressFiles(Source, 0, "", null)

in
    MyData

 

 

image.thumb.png.fd677b810e80144ce75e36e743b04d16.png

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
  • Alunos

Consegui resolver incluindo:

let
    SPW_CIA_ABERTA = let
    Source = Web.Contents("http://sistemas.cvm.gov.br/cadastro/SPW_CIA_ABERTA.ZIP"),
    Rar = zip_file(Source)
in
    Rar,
    Content = SPW_CIA_ABERTA{0}[Content],
    #"Texto Importado" = Table.FromColumns({Lines.FromBinary(Content,null,null,1252)})
in
    #"Texto Importado"

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...