Skip to content

Instantly share code, notes, and snippets.

@rafaelmpsantos
Last active March 31, 2020 21:37
let
Funcao = (link as text) =>
let
Fonte = Csv.Document(Web.Contents("https://covid.saude.gov.br", [RelativePath = link]),[Delimiter=";", Columns=7, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Cabeçalhos Promovidos" = Table.PromoteHeaders(Fonte, [PromoteAllScalars=true])
in
#"Cabeçalhos Promovidos",
Fonte = {DateTime.LocalNow(), Date.AddDays(DateTime.LocalNow(), -1), Date.AddDays(DateTime.LocalNow(), 1)},
#"Convertido para Tabela" = Table.FromList(Fonte, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Tipo Alterado" = Table.TransformColumnTypes(#"Convertido para Tabela",{{"Column1", type date}}),
#"Personalização Adicionada" = Table.AddColumn(#"Tipo Alterado", "Link", each "assets/files/COVID19_" & Text.From(Date.Year([Column1])) & Text.PadStart(Text.From(Date.Month([Column1])), 2, "0") & Text.PadStart(Text.From(Date.Day([Column1])), 2, "0") & ".csv"),
#"Colunas Removidas" = Table.RemoveColumns(#"Personalização Adicionada",{"Column1"}),
InvocarFuncao = Table.AddColumn(#"Colunas Removidas", "Tabela", each if Value.Metadata(Web.Contents("https://covid.saude.gov.br", [RelativePath =[Link]]))[Response.Status]=200 then Funcao([Link]) else null),
#"Colunas Removidas1" = Table.RemoveColumns(InvocarFuncao,{"Link"}),
#"Tabela Expandido" = Table.ExpandTableColumn(#"Colunas Removidas1", "Tabela", {"regiao", "estado", "data", "casosNovos", "casosAcumulados", "obitosNovos", "obitosAcumulado"}, {"regiao", "estado", "data", "casosNovos", "casosAcumulados", "obitosNovos", "obitosAcumulado"}),
#"Linhas Filtradas" = Table.SelectRows(#"Tabela Expandido", each ([regiao] <> null)),
#"Tipo Alterado1" = Table.TransformColumnTypes(#"Linhas Filtradas",{{"regiao", type text}, {"estado", type text}, {"data", type date}, {"casosNovos", Int64.Type}, {"casosAcumulados", Int64.Type}, {"obitosNovos", Int64.Type}, {"obitosAcumulado", Int64.Type}})
in
#"Tipo Alterado1"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment