[ Foro de Python ]

Pandas tkinter (Python)

29-Jan-2023 16:59
Invitado (Felipe Martinez)
1 Respuestas

Buen día,

Actualmente me encuentro familiarizando con las interfaces graficas de la libreria tkinter... Estoy realizando un programa con pandas, la idea es leer un archivo (libro) excel que contiene varias hojas, pero solo quiero leer una hoja en especifico... cando lo hago con puro código funciona de maravilla, pero a la hora de leerlo mediante la interfaz me muestra la primera hoja del excel asi yo le especifique la hoja que quiero.

A continuacion inserto el fragmento del codigo

def load_file():

File_open = filedialog.askopenfilename(initialdir ='/',
title='Selecione archivo',
filetype=(('xlsx files', '*.xlsx*'),('All files', '*.*')))
indica['text'] = File_open

input_cols = [0,1,2,3,5,8,9,10,11,12,13,14,15,17,18,19,20,
               21,22,23,26,27,28,29,30,33,34,35,36,37,38,39,67,
               68,70,71,72,77]
def datos_excel():

datos_obtenidos = indica['text']
try:
archivoexcel = r'{}'.format(datos_obtenidos)


df = pd.read_excel(archivoexcel,
                   sheet_name = "CONSOLIDADO GENERAL",
                   header = 0, #el registro #1 esta ubicado en la posicion 0
                   usecols = input_cols)


Agradezco cualquier ayuda que me puedan brindar.


16-Mar-2023 21:40
Invitado (Alejandro Andrade)

¡Hola!

El problema que estás experimentando puede deberse a que la variable 'archivoexcel' que pasas a la función 'pd.read_excel()' no está siendo interpretada correctamente. Es posible que el valor que se está pasando sea una cadena de texto que representa la ruta del archivo, pero que no se esté leyendo correctamente en el contexto de pandas.

Una solución que podrías probar es utilizar la biblioteca 'os' de Python para obtener la ruta absoluta del archivo, de la siguiente manera:

import os

datos_obtenidos = indica['text']
try:
   archivoexcel = os.path.abspath(datos_obtenidos)
   df = pd.read_excel(archivoexcel,
                      sheet_name = "CONSOLIDADO GENERAL",
                      header = 0,
                      usecols = input_cols)

La función 'os.path.abspath()' convierte la ruta relativa del archivo a una ruta absoluta que pandas puede utilizar para leer la hoja específica del archivo de Excel.

Espero que esto ayude a resolver tu problema. ¡Buena suerte con tu proyecto!






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)