Este dilema se puede tratar de diversas maneras, por lo tanto te damos la que en nuestra opinión es la resolución más completa.
Solución:
No es posible leer datos de un archivo de Excel usando XlsxWriter.
Hay algunas alternativas enumeradas en la documentación.
Si desea usar xlsxwriter para manipular formatos y fórmulas que no puede hacer con pandas, al menos puede importar su archivo de Excel a un objeto xlsxwriter usando pandas. Así es cómo.
import pandas as pd
import xlsxwriter
def xlsx_to_workbook(xlsx_in_file_url, xlsx_out_file_url, sheetname):
"""
Read EXCEL file into xlsxwriter workbook worksheet
"""
workbook = xlsxwriter.Workbook(xlsx_out_file_url)
worksheet = workbook.add_worksheet(sheetname)
#read my_excel into a pandas DataFrame
df = pd.read_excel(xlsx_in_file_url)
# A list of column headers
list_of_columns = df.columns.values
for col in range(len(list_of_columns)):
#write column headers.
#if you don't have column headers remove the folling line and use "row" rather than "row+1" in the if/else statments below
worksheet.write(0, col, list_of_columns[col] )
for row in range (len(df)):
#Test for Nan, otherwise worksheet.write throws it.
if df[list_of_columns[col]][row] != df[list_of_columns[col]][row]:
worksheet.write(row+1, col, "")
else:
worksheet.write(row+1, col, df[list_of_columns[col]][row])
return workbook, worksheet
# Create a workbook
#read you Excel file into a workbook/worksheet object to be manipulated with xlsxwriter
#this assumes that the EXCEL file has column headers
workbook, worksheet = xlsx_to_workbook("my_excel.xlsx", "my_future_excel.xlsx", "My Sheet Name")
###########################################################
#Do all your fancy formatting and formula manipulation here
###########################################################
#write/close the file my_new_excel.xlsx
workbook.close()
valoraciones y reseñas
Si te sientes estimulado, eres capaz de dejar un escrito acerca de qué te ha impresionado de este post.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)