paint-brush
Cómo obtener datos de la API en Excelpor@Chernenko
23,958 lecturas
23,958 lecturas

Cómo obtener datos de la API en Excel

por Denis5m2021/09/28
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Hay varias formas de obtener datos de la API a MS Excel, pero nos vamos a centrar en la opción más sencilla (incluido el tutorial en vídeo) para personas sin conocimientos técnicos: utilizar el código Python/R/JavaScript/PHP y guardarlo en un El archivo MS Excel requiere habilidades de programación y un software Postman preinstalado. El uso de la fórmula BUSCARVWEB no requiere conocimientos de programación, y la opción más sencilla posible es la cuarta explicación más sencilla de este artículo mediante la obtención de datos en tablas de Excel desde la API con formato JSON.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Cómo obtener datos de la API en Excel
Denis HackerNoon profile picture

Hay varias formas de obtener datos de la API a MS Excel, pero nos vamos a centrar en la opción más sencilla (incluido el tutorial en vídeo) para personas sin conocimientos técnicos:

1. Usar el código Python/R/JavaScript/PHP y guardarlo en un archivo de MS Excel
--> esta opción requiere conocimientos de programación y un entorno preinstalado.
2. Uso del software Postman
--> requiere el software Postman preinstalado y mucho trabajo manual
3. Usando Power Query
--> requiere conocimientos básicos de programación y familiarizarse con PowerQuery
4. Usando la fórmula VLOOKUPWEB
--> No requiere habilidades de programación y la opción más simple posible

Nos vamos a centrar en la explicación de la cuarta forma más sencilla de este artículo al obtener datos en tablas de Excel desde la API con formato JSON (usando los métodos POST o GET)

La fórmula VLOOKUPWEB funciona tan simple como la fórmula de Excel VLOOKUP habitual con la siguiente sintaxis:

=vlookupweb(1-enlace-a-api, 2-campo-para-consultar, 3-tiempo de espera-en-segundos-entre-llamadas, 4-token-si-es-necesario, 5-cuerpo-para-publicar-o -empty-for-get-request)

VLOOKUPWEB requiere los siguientes parámetros de entrada:

  1. enlace API
  2. Nombre de campo de la respuesta JSON que desea obtener datos
  3. Parámetros de tiempo de espera en segundos (0 para ningún tiempo de espera)
  4. Token de API si se requiere autorización (si no, déjelo en blanco)
  5. Parámetro de cuerpo (si está vacío, usaría el método GET. Si no está vacío, el cuerpo se enviará como POST)

Para agregar esta función a su Excel:

  1. Excel abierto
  2. Presione Alt + f11
  3. crear nuevo modulo
  4. Copie y pegue este código en un nuevo módulo
  5. Guarde y cierre el editor de VBA.
  6. Puede usar la función VLOOKUPWEB como una fórmula típica similar a la querida VLOOKUP estándar

El código fuente de la función VBA personalizada que puede encontrar a continuación. Para obtener la última versión de vlookup para la función web , puede consultar nuestro repositorio de GitHub

 ' ------------------------------------------------------------------------ 'This function is property of NLSQL Limited, 'NLSQL is B2B SaaS to empower employees with intuitive text interface to 'poorly -accessible coporate data to inform and speed business decisions with significant benefits for enterprises. 'Below code is 100 % open -source under MIT Licence, so you can feel free to use it for 'Commercial use , Modification, Distribution or private use . Except if you are Microsoft =) 'NLSQL Limited don 't have any Liability or Warranties related to your code usage 'subscribe to our LinkedIn https://www.linkedin.com/company/nlsql-com 'or Youtube https://www.youtube.com/channel/UC8KtzeNHxhLGVwiOCwvRBkg?sub_confirmation= 1 'in order to have even more great open -source tools, absolutely free 'By Denis 'Date : 06 / 09 / 2021 'info @nlsql.com 'https ://nlsql.com///// ' ------------------------------------------------------------------------ 'Function works similar to standard Excel VLOOKUP function , 'so it finds the FIRST value based on API connection and field name from API responce Function VLOOKUPWEB(ByVal cell As Range , ByVal txt As String , Optional ByVal pause, _ Optional ByVal header As String , Optional ByVal postcell As Range ) As String ' As Integer On Error Resume Next Dim GetResponse As String FuncDesc = "Function created for Vlookup JSON to excel in a most simpliest way same as using VLOOKUP" URL = cell.Value 'URL is required to have correct API link including https or http. HTTPS works better for the data security GetResponse = "" If URL Like "*http*" Then If Not postcell Is Nothing Then pst = postcell.Value zapr = "POST" 'support of POST request. Body ( 5 th) Postcell argument is required Else pst = "" zapr = "GET" 'support of GET request. All parameters expected to be in ( 1 st) Cell argument End If Set xmlhttp = CreateObject( "WinHttp.WinHttpRequest.5.1" ) 'MSXML2 .XMLHTTP xmlhttp. Open zapr, URL, False : DoEvents xmlhttp.setRequestHeader "Authorization" , header 'you can change Authorization to api-key, etc. as required by API provider xmlhttp.setRequestHeader "Content-Type" , "application/json" 'you can add as much headers as needed xmlhttp.send pst 'send request both POST and GET supported GetResponse = xmlhttp.responseText 'MsgBox GetResponse Set xmlhttp = Nothing End If If pause > 0 Then t = Timer ' 3 rd argument - Pause in seconds for time - out Do DoEvents If t > Timer Then Exit Do Loop Until Timer - t > pause End If s = Split(GetResponse, txt) If UBound(s) > 0 Then ps = Split(s( 1 ), "" "" ) VLOOKUPWEB = ps( 2 ) Else : VLOOKUPWEB = "not available" : End If End Function

Si disfrutó de nuestra simplificación para su trabajo o si tiene alguna pregunta, suscríbase a la página web de nuestra empresa en NLSQL LinkedIn o NLSQL YouTube para estar bien informado sobre los próximos lanzamientos. VLOOKUPWEB es nuestra herramienta interna, que lanzamos a código abierto absolutamente gratis.
Lo usamos todos los días para probar las API de Text to SQL para nuestros clientes.

Creamos muchas herramientas de software útiles y poderosas a lo largo del desarrollo de nuestro producto comercial NLSQL , que brinda a los empleados de primera línea una interfaz de texto intuitiva para datos corporativos de difícil acceso para informar y acelerar las decisiones comerciales con beneficios significativos para las empresas.

Disfruta y no olvides compartir este artículo con tus compañeros para hacer su vida laboral más fácil y productiva.