如何将Excel工作表复制到Python中的其他工作簿

如何将Excel工作表复制到Python中的其他工作簿,python,xlwt,Python,Xlwt,我有一个带sourcefile路径的字符串和另一个带destfile路径的字符串,两者都指向Excel工作簿 我想获取源文件的第一页,并将其作为一个新选项卡复制到destfile(与destfile中的位置无关),然后保存它 无法在xlrd或xlwt或xlutils中找到简单的方法来执行此操作。我遗漏了什么吗?如果你不反对使用熊猫,这可能会有所帮助 import pandas as pd #change xxx with the sheet name that includes the dat

我有一个带sourcefile路径的字符串和另一个带destfile路径的字符串,两者都指向Excel工作簿

我想获取源文件的第一页,并将其作为一个新选项卡复制到destfile(与destfile中的位置无关),然后保存它


无法在
xlrd
xlwt
xlutils
中找到简单的方法来执行此操作。我遗漏了什么吗?

如果你不反对使用熊猫,这可能会有所帮助

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')
希望对您有所帮助,您也可以尝试一下

解决方案1 使用该包的纯Python解决方案。仅复制数据值

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)
解决方案2 使用包将复制操作委托给Excel应用程序的解决方案。将复制图纸中的数据值、格式和所有其他内容。注意:此解决方案仅适用于安装了MS Excel的Windows计算机

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()
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()
解决方案3 使用包将复制操作委托给Excel应用程序的解决方案。Xlwings本质上是一个围绕(大多数,但不是全部)
pywin32
/
appscript
excel API函数的智能包装器。将复制图纸中的数据值、格式和所有其他内容。注意:此解决方案仅适用于安装了MS Excel的Windows或Mac计算机

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()
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()

经过漫长的战斗,终于得到了答案。 源代码:

换言之:

wb.sheets['Sheet1'].range('A1:A6').copy(wb.sheets['Sheet2'].range('A1:A6'))
  • 它也可以从一个工作簿工作到另一个工作簿
  • 必须提供一系列单元。只要确保范围足够大,足以覆盖整个工作表
  • 复制功能复制/粘贴包含一系列单元格(值、单元格格式、超链接、单元格类型等)的所有内容

我更愿意呆在我已经安装的范围内,因为由于帐户限制,我要花很长时间才能安装新软件包。我在安装了新软件包的笔记本电脑上尝试了这一点,但该代码不起作用(read_excel不是一个属性)@KaliMa我很确定这是一个属性,文档。我已经多次使用它了,不管是哪种情况,这就是它给我带来的错误,根据谷歌搜索,这似乎是一个常见的错误,但没有一个修复似乎有效,我不想在这里把一个问题变成几个问题,有没有一个非熊猫解决方案?复制Excel工作表时,Excel工作表格式丢失。如何保持格式。两个问题:(1)只复制数据值就足够了,还是还需要复制单元格的格式?(2) 您是否需要一个仅限Python的解决方案,或者可以使用启动和控制Excel应用程序的Python代码?@Xukrao(1)是的,值仅限Python;我已经有了一个使用Excel VBA的解决方案,但是我想把它移到Python中,这样我就不必使用两个进程,除非有一个Python解决方案调用特定.xlsm文件的特定子例程?