<h2>解决方案1</h2>
<p>使用<a href="https://openpyxl.readthedocs.io" rel="noreferrer">^{<cd1>}</a>包的纯Python解决方案。只复制数据值。</p>
<pre><code>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)
</code></pre>
<h2>解决方案2</h2>
<p>使用<a href="https://github.com/mhammond/pywin32" rel="noreferrer">^{<cd2>}</a>包将复制操作委托给Excel应用程序的解决方案。数据值、格式和工作表中的所有内容都将被复制。注意:此解决方案仅适用于安装了MS Excel的Windows计算机。</p>
<pre><code>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()
</code></pre>
<h2>解决方案3</h2>
<p>使用<a href="https://docs.xlwings.org" rel="noreferrer">^{<cd3>}</a>包将复制操作委托给Excel应用程序的解决方案。Xlwings本质上是一个智能包装器(大多数,但不是全部)<code>pywin32</code>/<code>appscript</code>excel API函数。数据值、格式和工作表中的所有内容都将被复制。注意:此解决方案仅适用于安装了MS Excel的Windows或Mac计算机。</p>
<pre><code>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()
</code></pre>