Saltar al contenido

Cómo copiar una hoja de Excel a otro libro de trabajo en Python

Indagamos en diferentes espacios y así darte la respuesta a tu problema, si continúas con alguna difcultad puedes dejarnos tu inquietud y contestaremos porque estamos para ayudarte.

Solución:

Solución 1

Una solución exclusiva de Python que utiliza el openpyxl paquete. Solo se copiarán los valores de datos.

import openpyxl as xl

path1 = 'C:\Users\Xukrao\Desktop\workbook1.xlsx'
path2 = 'C:\Users\Xukrao\Desktop\workbook2.xlsx'

wb1 = xl.load_workbook(filename=path1)
ws1 = wb1.worksheets[0]

wb2 = xl.load_workbook(filename=path2)
ws2 = wb2.create_sheet(ws1.title)

for row in ws1:
    for cell in row:
        ws2[cell.coordinate].value = cell.value

wb2.save(path2)

Solución 2

Una solución que utiliza el pywin32 paquete para delegar la operación de copia a una aplicación de Excel. Se copian los valores de datos, el formato y todo lo demás en la hoja. Nota: esta solución funcionará solo en una máquina con Windows que tenga instalado MS Excel.

from win32com.client import Dispatch

path1 = 'C:\Users\Xukrao\Desktop\workbook1.xlsx'
path2 = 'C:\Users\Xukrao\Desktop\workbook2.xlsx'

xl = Dispatch("Excel.Application")
xl.Visible = True  # You can remove this line if you don't want the Excel application to be visible

wb1 = xl.Workbooks.Open(Filename=path1)
wb2 = xl.Workbooks.Open(Filename=path2)

ws1 = wb1.Worksheets(1)
ws1.Copy(Before=wb2.Worksheets(1))

wb2.Close(SaveChanges=True)
xl.Quit()

Solución 3

Una solución que utiliza el xlwings paquete para delegar la operación de copia a una aplicación de Excel. Xlwings es, en esencia, un envoltorio inteligente (la mayoría, aunque no todos) pywin32/appscript Funciones de la API de Excel. Se copian los valores de datos, el formato y todo lo demás en la hoja. Nota: esta solución solo funcionará en una máquina con Windows o Mac que tenga instalado MS Excel.

import xlwings as xw

path1 = 'C:\Users\Xukrao\Desktop\workbook1.xlsx'
path2 = 'C:\Users\Xukrao\Desktop\workbook2.xlsx'

wb1 = xw.Book(path1)
wb2 = xw.Book(path2)

ws1 = wb1.sheets(1)
ws1.api.Copy(Before=wb2.sheets(1).api)
wb2.save()
wb2.app.quit()

Esto podría ayudar si no se opone a usar Pandas

import pandas as pd

#change xxx with the sheet name that includes the data
data = pd.read_excel(sourcefile, sheet_name="xxx")

#save it to the 'new_tab' in destfile
data.to_excel(destfile, sheet_name='new_tab')

Espero eso ayude

Valoraciones y reseñas

Si te gusta la invitación, tienes el poder dejar una división acerca de qué te ha parecido esta sección.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *