Google Docs * Community Challenge! *

Un usuario Pregunto ✅

Yggdrasill

Hola

Como saben, el virus corona se está propagando. La información se recopila públicamente aquí.

Las tablas tienen la misma estructura para cada hoja, ¡lo cual es importante!

Cuando me conecto al archivo usando el conector web en PBI Desktop, el navegador aparece con esta opción

Navigator.PNG

Actualmente se encuentran 19 tablas, ya que hay 19 hojas en el documento real. ¡Habrá más hojas por venir!

Aquí está el problema: ¿cómo puedo actualizar los datos y obtener todos mesas en cada actualización?

Lo que he intentado hasta ahora es mirar la diferencia entre dos tablas y descubrí que las hojas tienen Id, pero no hay forma de saber cuál es el Id. Sin embargo, la función de consulta de energía Html.Table creará este código cuando seleccione una tabla del navegador

    #"Extracted Table From Html" = Html.Table(Source, {{"Column1", "DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > TR > :nth-child(1), DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > * > TR > :nth-child(1)"}, {"Column2", "DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > TR > :nth-child(2), DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > * > TR > :nth-child(2)"}, {"Column3", "DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > TR > :nth-child(3), DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > * > TR > :nth-child(3)"}, {"Column4", "DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > TR > :nth-child(4), DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > * > TR > :nth-child(4)"}, {"Column5", "DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > TR > :nth-child(5), DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > * > TR > :nth-child(5)"}, {"Column6", "DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > TR > :nth-child(6), DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > * > TR > :nth-child(6)"}, {"Column7", "DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > TR > :nth-child(7), DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > * > TR > :nth-child(7)"}}, [RowSelector="DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > TR, DIV[id='1368739505'] > DIV.ritz.grid-container:nth-child(1) > TABLE.waffle:nth-child(1) > * > TR"]),
   

Si hago clic con el botón derecho en el documento en sí mismo en Google docs y selecciono «Inspeccionar» y luego voy a la consola y pego este código allí y presiono Enter (funciona en Chrome y el nuevo navegador Edge)

var urls=$$('a');for(url in urls){console.log("%c#"+url+" - %c"+urls[url].innerHTML +" -- %c"+urls[url].href,"color:red;","color:green;","color:blue;");}

Obtengo este resultado

2020-01-30 11_08_27-Presentation3 - PowerPoint.png+

Como puede ver, el comando enumera los nombres de las hojas para mí.

Sé que hay una manera de obtener todos los nombres de las hojas y probablemente el ID de la hoja y luego consultar el documento para obtener cada ID TODOS tablas del documento.

Esto es posible si se trata de un archivo de Excel que usa la función File.Contents () pero estoy un poco atascado en cómo solucionar este problema. Mira aquí

Para resumir: no puedo conseguir todos tablas de este archivo: https: //docs.google.com/spreadsheets/d/1yZv9w9zRKwrGTaR-YzmAqMefw4wMlaXocejdxZaTs6w/htmlview? usp = sha … porque se irán agregando más y más hojas a medida que pase el tiempo.

Podemos hacer esto ?

Hola, @Yggdrasill

Puede intentar operar de la siguiente manera.

1. Conecta la URL:

url

1.png

2. Agrega una columna personalizada

2.png

3. Eliminar la columna de datos de origen

5.png

3.png

4.png

url

Aquí están los códigos en el Editor avanzado.

let
    Source = Excel.Workbook(Web.Contents("https://docs.google.com/spreadsheets/d/1yZv9w9zRKwrGTaR-YzmAqMefw4wMlaXocejdxZaTs6w/export?format=xlsx&id=1yZv9w9zRKwrGTaR-YzmAqMefw4wMlaXocejdxZaTs6w"), null, true),
    #"Added Custom" = Table.AddColumn(Source, "DataTable", each Table.PromoteHeaders([Data])),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Data"}),
    #"Expanded DataTable" = Table.ExpandTableColumn(#"Removed Columns", "DataTable", {"Province/State", "Country/Region", "Last Update", "Confirmed", "Deaths", "Recovered", "Suspected", "Demised", "Country", "Date last updated"}, {"DataTable.Province/State", "DataTable.Country/Region", "DataTable.Last Update", "DataTable.Confirmed", "DataTable.Deaths", "DataTable.Recovered", "DataTable.Suspected", "DataTable.Demised", "DataTable.Country", "DataTable.Date last updated"})
in

Atentamente

Alano

Hola, @Yggdrasill

Puede intentar operar de la siguiente manera.

1. Conecta la URL:

url

1.png

2. Agrega una columna personalizada

2.png

3. Eliminar la columna de datos de origen

5.png

3.png

4.png

url

Aquí están los códigos en el Editor avanzado.

let
    Source = Excel.Workbook(Web.Contents("https://docs.google.com/spreadsheets/d/1yZv9w9zRKwrGTaR-YzmAqMefw4wMlaXocejdxZaTs6w/export?format=xlsx&id=1yZv9w9zRKwrGTaR-YzmAqMefw4wMlaXocejdxZaTs6w"), null, true),
    #"Added Custom" = Table.AddColumn(Source, "DataTable", each Table.PromoteHeaders([Data])),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Data"}),
    #"Expanded DataTable" = Table.ExpandTableColumn(#"Removed Columns", "DataTable", {"Province/State", "Country/Region", "Last Update", "Confirmed", "Deaths", "Recovered", "Suspected", "Demised", "Country", "Date last updated"}, {"DataTable.Province/State", "DataTable.Country/Region", "DataTable.Last Update", "DataTable.Confirmed", "DataTable.Deaths", "DataTable.Recovered", "DataTable.Suspected", "DataTable.Demised", "DataTable.Country", "DataTable.Date last updated"})
in

Atentamente

Alano

Yggdrasill

En respuesta a v-alq-msft

¡Eres una belleza absoluta!

¿Puedo preguntar cómo obtuviste la URL final?

Sabía sobre el formato / export? = Xlsx, pero ¿de dónde sacaste esta cadena?

id=1yZv9w9zRKwrGTaR-YzmAqMefw4wMlaXocejdxZaTs6w

EDITAR: No importa, lo veo ahora, ¡es lo que aparece después de / d /!

https://docs.google.com/spreadsheets/d/1yZv9w9zRKwrGTaR-YzmAqMefw4wMlaXocejdxZaTs6w/export?format=xlsx&id=1yZv9w9zRKwrGTaR-YzmAqMefw4wMlaXocejdxZaTs6w

Gracias de nuevo !

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *