for item in results: titleformat = book.add_format({'bold': True, 'align': 'center'}) center = book.add_format({'align' : 'center'}) usersheet.write(0, 0, "#" , titleformat) usersheet.write(0, 1, "User" , titleformat) usersheet.write(0, 2, "Group" , titleformat) usersheet.write(0, 3, "SVN Commits" , titleformat) usersheet.write(0, 4, "GIT Commits" , titleformat) usersheet.write(0, 5, "GITLAB Commits", titleformat) usersheet.write(0, 6, "Gerrit Review" , titleformat) . . . . #### set column widths usersheet.set_column(userrowno, 0, 5) for i in range(1,26): usersheet.set_column(userrowno, i, 20) userrowno = userrowno + 1Con este fragmento de código, creamos dinámicamente dos hojas de Excel. Sin embargo, debido a que los datos siempre cambian, la última fila se ve diferente para cada dato. ¿Cómo puedo escribir dinámicamente los datos totales al final de cada columna en Python? El texto TOTAL en la imagen debe generarse como genérico en el código y debe escribirse al final de cada columna.
La forma más fácil sería leer esto en un marco de datos en pandas, sumar en columnas y luego volver a escribir su hoja con los títulos.
import pandas as pd df = pd.read_excel(path_to_sheet) df.loc["Total"] = df.sum() writer = pd.ExcelWriter(path_where_you_want) ...do what you're doing above with pandas writer object... df.to_excel(writer)https://pandas.pydata.org/docs/reference/api/pandas.ExcelWriter.html
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_excel.html
Editar: es posible que deba configurar su índice si tiene columnas no numéricas