Python: ¿Cómo puedo escribir un archivo de texto que extraiga datos de un archivo de Excel? Formatear como “Encabezado de columna: Valor de celda”
Estoy tratando de automatizar la salida de un archivo de Excel para que sea más fácilmente legible. Tengo un archivo de Excel con columnas A hasta BY. Mi plan es leer cada fila con una fecha que coincida con la entrada del usuario. Luego leer cada celda de la fila y, si la celda no está en blanco, imprimir el valor de la celda. Después de esto, los datos se escribirán en un archivo de texto en el siguiente formato:
- Nombre
- Encabezado de columna C: valor de la celda
- Encabezado de columna K: valor de la celda
- Encabezado de columna Z: valor de la celda
- Nombre 2
- Encabezado de columna C: valor de la celda
- etc.
“Nombre” es una de las columnas. Entonces creo que la idea sería crear un diccionario de nombres, donde cada nombre tenga un diccionario anidado de cada encabezado de columna y su valor.
Estoy utilizando openpyxl para completar esta tarea. Puedo recorrer correctamente todas las filas y celdas que cumplen los criterios. Sin embargo, tengo problemas para convertir esto en un archivo de texto con el formato que me interesa usar. ¿Alguien puede proporcionar algunos métodos para imprimir los valores de las celdas y los encabezados de columna correspondientes utilizando un bucle for para todas las columnas? ¿Y también en el formato deseado? Estoy dispuesto a proporcionar cualquier otra información que se necesite. Gracias a cualquiera que pueda ayudar. Esta también es mi primera publicación, así que avíseme cómo más puedo ayudar.
EDIT: Añadí parte del código que usé para recorrer las columnas y filas. “work date” es el valor de entrada del usuario que elige solo las filas con la fecha correcta con la que queremos trabajar.
Recorrer cada fila con la fecha dada e imprimir las celdas con valor en ellas
cards = {}
activity_list = []
for row in active_sheet.iter_rows(max_row=22):
if row[0].value == work_date:
cards[row[1].value] = ['Start']
for cell in row:
if cell.value:
activity_list.append(cell.value)
for key, value in cards.items():
cards[key].append(activity_list)
else:
continue
Aquí seleccionamos solo las filas con la fecha correcta e imprimimos solo las celdas relevantes y no vacías. Y se imprimen y formatean en un archivo de texto.
with open(timecardtxt, 'w') as file_object:
for key, values in cards.items():
file_object.write("Nombre: " + key)
for item in value[1]:
print(item, file=file_object)
davy.ai
Para imprimir los valores de las celdas y el encabezado de columna correspondiente utilizando un bucle for para todas las columnas, puedes usar el paquete
openpyxl
para iterar sobre cada encabezado de columna y valor de celda en cada fila que coincida con la fecha ingresada por el usuario. Luego, puedes almacenar los datos en un diccionario con diccionarios anidados para cada nombre y su correspondiente encabezado de columna y valor de celda. Finalmente, puedes escribir los datos en un archivo de texto en el formato deseado utilizando formato de cadena.Aquí tienes un ejemplo de código para lograr esto:
Este código iterará sobre cada fila con una fecha coincidente, extraerá el encabezado de columna y el valor de celda para cada celda no vacía, y almacenará los datos en un diccionario con diccionarios anidados para cada nombre y su correspondiente encabezado de columna y valor de celda. Luego, escribirá los datos en un archivo de texto con el formato deseado, utilizando formato de cadena para asegurar un espaciado y formato adecuados.