在 Excel 中复制工作表是一项重要的技能,特别是当你需要基于现有工作表创建新的工作表时。通过利用复制功能,可以避免手动重新创建相同内容可能导致的潜在错误。这不仅节省时间和精力,还确保数据的准确性和可靠性。本文将介绍如何使用 Spire.XLS for Python 在 Python 中复制工作表。
安装 Spire.XLS for Python
本教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.XLS
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python
Python 在同一个 Excel 工作簿中复制工作表
为了实现复制工作表,您可以通过创建一个新的工作表并把它添加到同一工作簿中,然后将原始工作表的数据复制到新工作表里。具体步骤如下:
- 初始化一个 Workbook 类的实例。
- 使用 Workbook.LoadFromFile() 方法加载一个Excel工作簿。
- 使用 Workbook.Worksheets[int index] 属性获取特定工作表。
- 使用 Workbook.Worksheets.Add() 方法向工作簿添加一个新的工作表。
- 使用 Worksheet.CopyFrom(Worksheet worksheet) 方法将特定工作表的数据复制到新工作表。
- 使用 Workbook.SaveToFile() 方法将结果工作簿保存到另一个文件中。
- Python
from spire.xls import *
from spire.xls.common import *
# 创建一个工作簿对象
workbook = Workbook()
# 从文件中加载一个工作簿
workbook.LoadFromFile("示例1.xlsx")
# 获取源工作表
sourceSheet = workbook.Worksheets[0]
# 设置目标工作表的名称为源工作表名称 + "_复制"
sheetName = sourceSheet.Name + "_复制"
# 在同一工作簿中添加目标工作表,并使用设置的名称
destSheet = workbook.Worksheets.Add(sheetName)
# 将源工作表内容复制到目标工作表
destSheet.CopyFrom(sourceSheet)
# 将工作簿保存到文件,使用2016版本的Excel格式
workbook.SaveToFile("在同一个Excel工作簿中复制工作表.xlsx", ExcelVersion.Version2016)
# 释放工作簿的资源
workbook.Dispose()
Python 将工作表复制到另一个 Excel 工作簿
要将一个工作表从一个工作簿复制到另一个工作簿,您需要向目标工作簿添加一个新的工作表,然后将源工作簿中的工作表数据复制到目标工作簿的新工作表中。如果您想保留源格式,可以将源工作簿的主题样式复制到目标工作簿。以下是具体的步骤:
- 初始化一个 Workbook 类的实例。
- 使用 Workbook.LoadFromFile() 方法加载源工作簿。
- 使用 Workbook.Worksheets[int index] 属性获取特定工作表。
- 初始化一个 Workbook 类的实例。
- 使用 Workbook.LoadFromFile() 方法加载目标工作簿。
- 使用 Workbook.Worksheets.Add() 方法向目标工作簿添加一个新的工作表。
- 使用 Worksheet.CopyFrom(Worksheet worksheet) 方法将源工作簿的特定工作表复制到目标工作簿的新工作表。
- 使用 Workbook.CopyTheme (Workbook srcWorkbook) 方法将源工作簿的主题样式复制到目标工作簿。
- 使用 Workbook.SaveToFile() 方法将结果工作簿保存到另一个文件中。
- Python
from spire.xls import *
from spire.xls.common import *
# 创建一个工作簿对象
sourceWorkbook = Workbook()
# 从文件中加载一个工作簿
sourceWorkbook.LoadFromFile("示例1.xlsx")
# 获取源工作表
sourceSheet = sourceWorkbook.Worksheets[0]
# 设置目标工作表的名称为源工作表名称 + "_复制"
sheetName = sourceSheet.Name + "_复制"
# 创建一个目标工作簿对象
destWorkbook = Workbook()
# 从文件中加载另一个工作簿
destWorkbook.LoadFromFile("示例2.xlsx")
# 添加目标工作表,并使用设置的名称
destSheet = destWorkbook.Worksheets.Add(sheetName)
# 将源工作表内容复制到目标工作表
destSheet.CopyFrom(sourceSheet)
# 复制源工作簿的主题样式到目标工作簿
destWorkbook.CopyTheme(sourceWorkbook)
# 将目标工作簿保存到文件,使用2016版本的Excel格式
destWorkbook.SaveToFile("将工作表复制到另一个Excel工作簿.xlsx", ExcelVersion.Version2016)
# 释放源工作簿的资源
sourceWorkbook.Dispose()
# 释放目标工作簿的资源
destWorkbook.Dispose()
Python 将可见工作表复制到新的 Excel 工作簿
如果您只想与他人共享可见的工作表而不是整个工作簿,您可以将可见的工作表复制到一个新的工作簿中。以下是详细的步骤:
- 初始化一个 Workbook 类的实例。
- 使用 Workbook.LoadFromFile() 方法加载源工作簿。
- 初始化一个 Workbook 类的实例来创建一个新的工作簿,然后使用 Workbook.Worksheets.Clear() 方法清除新工作簿中的默认工作表。
- 遍历源工作簿中的所有工作表。使用Worksheet.Visibility属性检查当前工作表是否可见,如果结果为True,则使用 Workbook.Worksheets.Add() 方法向新工作簿添加一个新的工作表。
- 使用 Worksheet.CopyFrom(Worksheet worksheet) 方法将源工作簿的工作表复制到新工作簿的新工作表中。
- 使用 Workbook.CopyTheme(Workbook srcWorkbook) 方法将源工作簿的主题样式复制到新工作簿。
- 使用 Workbook.SaveToFile() 方法将结果工作簿保存到另一个文件中。
- Python
from spire.xls import *
from spire.xls.common import *
# 创建一个源工作簿对象
sourceWorkbook = Workbook()
# 从文件中加载一个工作簿
sourceWorkbook.LoadFromFile("示例3.xlsx")
# 创建一个新的工作簿对象
newWorkbook = Workbook()
# 设置新的工作簿的版本为Excel 2016
newWorkbook.Version = ExcelVersion.Version2016
# 清除新工作簿中的所有工作表
newWorkbook.Worksheets.Clear()
# 循环遍历源工作簿中的每个工作表
for sourceSheet in sourceWorkbook.Worksheets:
# 如果源工作表可见
if sourceSheet.Visibility == WorksheetVisibility.Visible:
# 设置目标工作表名称为源工作表名称 + "_复制"
sheetName = sourceSheet.Name + "_复制"
# 在新工作簿中添加目标工作表,并使用设置的名称
destSheet = newWorkbook.Worksheets.Add(sheetName)
# 将源工作表内容复制到目标工作表
destSheet.CopyFrom(sourceSheet)
# 复制源工作簿的主题样式到新工作簿
newWorkbook.CopyTheme(sourceWorkbook)
# 将新工作簿保存到文件,使用2016版本的Excel格式
newWorkbook.SaveToFile("将可见工作表复制到新的Excel工作簿.xlsx", ExcelVersion.Version2016)
# 释放源工作簿的资源
sourceWorkbook.Dispose()
# 释放新工作簿的资源
newWorkbook.Dispose()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。