Estoy tratando de agregar el marco de datos de Pandas a todas las hojas de trabajo en un archivo de Excel. Sin embargo, el índice del encabezado inicial siempre se convierte en B1 donde estoy tratando de ajustarlo desde A1.
A continuación se muestra el código:
import os
import xlwt
from xlwt.Workbook import *
from pandas import ExcelWriter
import xlsxwriter
from openpyxl import Workbook, load_workbook
Categories = ["Column" + str(column) for column in range(1,10)]
wb1 = Workbook()
for i in range(1,5):
ws = wb1.create_sheet("1_"+ str(i))
for i in range(5):
ws = wb1.create_sheet("2_"+ str(i))
for i in range(5):
ws = wb1.create_sheet("3_"+ str(i))
for i in range(5):
ws = wb1.create_sheet("4_"+ str(i))
for i in range(5):
ws = wb1.create_sheet("5_"+ str(i))
for i in range(5):
ws = wb1.create_sheet("6_"+ str(i))
wb1.save('FrameFiles.xlsx')
df = pd.DataFrame(columns=Categories)
book = load_workbook('FrameFiles.xlsx')
writer = pd.ExcelWriter('FrameFiles.xlsx',engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
for i in wb1.sheetnames:
df.to_excel(writer, sheet_name=i,index=True,startrow=1,startcol=1)
writer.save()
Y el resultado es el siguiente:
ingrese la descripción de la imagen aquí
Quiero que el encabezado comience desde la posición A1, no desde la B1. Lo he intentado con startrow=0 y startcol=0 también, pero el resultado es el mismo. Cualquier sugerencia para resolver este problema sería muy apreciada.
Solución del problema
La columna vacía es su columna de índice, pero no tiene índice en su marco de datos, por lo que está vacía. intente usar index = False y debería obtener lo que espera
df.to_excel(writer, sheet_name=i,index=False,startrow=0,startcol=0)
No hay comentarios.:
Publicar un comentario