在处理大型的 excel 文件时,有时我们需要将其拆分成更小的部分,以便更高效地处理数据和进行分析。拆分 excel 文件可以有多种优势,例如减少文件的大小、提高计算速度、更灵活地处理数据以及方便多人协作等。这篇文章将介绍如何使用 spire.xls for python 和 python 拆分 excel 文件。
安装 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
如果你的 excel 文件包含多个工作表,你可以使用 spire.xls for python 提供的 workbook.worksheets.addcopy() 方法将每个工作表拆分为一个独立的 excel 文件。具体步骤如下:
- 创建 workbook 类的对象。
- 使用 workbook.loadfromfile() 方法加载原始 excel 文件。
- 遍历 excel 文件中的工作表。
- 为每个工作表创建一个新的 workbook 对象。
- 使用 workbook.worksheets.clear() 方法删除新工作簿中的默认工作表。
- 使用 workbook.worksheets.addcopy() 方法将原始 excel 文件中的工作表复制到新工作簿中。
- 使用 workbook.savetofile() 方法将新工作簿保存为单独的 excel 文件。
- python
from spire.xls import *
from spire.xls.common import *
# 创建 workbook 类的对象
workbook = workbook()
# 加载 excel 文件
workbook.loadfromfile("示例.xlsx")
# 指定存放生成的 excel 文件的文件夹路径
folderpath = "c:\\users\\administrator\\desktop\\output\\"
# 遍历 excel 文件中的所有工作表
for worksheet in workbook.worksheets:
# 创建一个新的 workbook 对象
newworkbook = workbook()
# 删除新工作簿中的工作表
newworkbook.worksheets.clear()
# 将工作表从 excel 文件复制到新工作簿
newworkbook.worksheets.addcopy(worksheet)
# 将新工作簿保存到指定文件夹
newworkbook.savetofile(folderpath worksheet.name ".xlsx", fileformat.version2016)
workbook.dispose()
python 按行拆分 excel
如果在一个大型的 excel 工作表中,有一些特定数量的行代表独立的记录或条目,那么你可以使用 worksheet.copyrow() 方法将这些行提取出来,保存到单独的 excel 文件中。这样做可以更方便地针对这些记录进行针对性的数据分析和处理。具体步骤如下:
- 创建 workbook 类的对象。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 使用 workbook.worksheets[index] 属性获取包含需要提取的行的原始工作表。
- 创建一个新的 workbook 对象,并使用 workbook.worksheets.clear() 方法删除新工作簿中的默认工作表。
- 使用 workbook.worksheets.add() 方法给新工作簿添加一个新工作表。
- 使用 worksheet.copyrow() 方法将特定行从原始工作表复制到新工作表。
- 将列宽从原始工作表复制到新工作表。
- 使用 workbook.savetofile() 方法将新工作簿保存为单独的 excel 文件。
- python
from spire.xls import *
from spire.xls.common import *
# 创建 workbook 对象并加载 excel 文件
workbook = workbook()
workbook.loadfromfile("示例.xlsx")
# 获取原始(第一个)工作表
worksheet = workbook.worksheets[0]
# 获取表头行
header = worksheet.rows[0]
# 指定生成的 excel 文件的文件夹路径
folderpath = "c:\\users\\administrator\\desktop\\output\\"
# 创建一个新的 workbook 对象
newworkbook1 = workbook()
# 删除默认的工作表
newworkbook1.worksheets.clear()
# 添加一个新的工作表
newworksheet1 = newworkbook1.worksheets.add("sheet1")
# 将原始工作表的第 1-5 行复制到新工作表
for i in range(1, 6):
worksheet.copyrow(worksheet.rows[i - 1], newworksheet1, newworksheet1.lastdatarow 1, copyrangeoptions.all)
# 将原始工作表的列宽复制到新工作表
for i in range(worksheet.columns.count):
newworksheet1.setcolumnwidth(i 1, worksheet.getcolumnwidth(i 1))
# 将新工作簿保存到指定文件夹
newworkbook1.savetofile(folderpath "1-5行.xlsx", fileformat.version2016)
newworkbook1.dispose()
# 创建一个新的 workbook 对象
newworkbook2 = workbook()
# 删除默认的工作表
newworkbook2.worksheets.clear()
# 添加一个新的工作表
newworksheet2 = newworkbook2.worksheets.add("sheet1")
# 将原始工作表的表头行复制到新工作表
worksheet.copyrow(worksheet.rows[0], newworksheet2, newworksheet2.lastdatarow 1, copyrangeoptions.all)
# 将原始工作表的第 6-10 行复制到新工作表
for i in range(6, 11):
worksheet.copyrow(worksheet.rows[i - 1], newworksheet2, newworksheet2.lastdatarow 1, copyrangeoptions.all)
# 将原始工作表的列宽复制到新工作表
for i in range(worksheet.columns.count):
newworksheet2.setcolumnwidth(i 1, worksheet.getcolumnwidth(i 1))
# 将新工作簿保存到指定文件夹
newworkbook2.savetofile(folderpath "6-10行.xlsx", fileformat.version2016)
newworkbook2.dispose()
python 按列拆分 excel
除了按行拆分之外,你还可以使用 worksheet.copycolumn() 方法将 excel 工作表按列进行拆分。具体步骤如下:
- 创建 workbook 类的对象。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 使用 workbook.worksheets[index] 属性获取包含需要提取的列的原始工作表。
- 创建一个新的 workbook 对象,并使用 workbook.worksheets.clear() 方法删除新工作簿中的默认工作表。
- 使用 workbook.worksheets.add() 方法给新工作簿添加一个新的工作表。
- 使用 worksheet.copycolumn() 方法将特定列从原始工作表复制到新工作表。
- 将行高从原始工作表复制到新工作表。
- 使用 workbook.savetofile() 方法将新工作簿保存为单独的 excel 文件。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个 workbook 对象并加载 excel 文件
workbook = workbook()
workbook.loadfromfile("示例.xlsx")
# 获取原始(第一个)工作表
worksheet = workbook.worksheets[0]
# 指定生成的 excel 文件的文件夹路径
folderpath = "c:\\users\\administrator\\desktop\\output\\"
# 创建一个新的 workbook 对象
newworkbook1 = workbook()
# 删除默认的工作表
newworkbook1.worksheets.clear()
# 添加一个新的工作表
newworksheet1 = newworkbook1.worksheets.add("sheet1")
# 从原始工作表复制第 1-2 列到新工作表
for i in range(1, 3):
worksheet.copycolumn(worksheet.columns[i-1], newworksheet1, newworksheet1.lastdatacolumn 1, copyrangeoptions.all)
# 从原始工作表复制行高到新工作表
for i in range(worksheet.rows.count):
newworksheet1.setrowheight(i 1, worksheet.getrowheight(i 1))
# 将新工作簿保存到指定文件夹
newworkbook1.savetofile(folderpath "1-2列.xlsx", fileformat.version2016)
newworkbook1.dispose()
# 创建一个新的 workbook 对象
newworkbook2 = workbook()
# 删除默认的工作表
newworkbook2.worksheets.clear()
# 添加一个新的工作表
newworksheet2 = newworkbook2.worksheets.add("sheet1")
# 从原始工作表复制第 3-5 列到新工作表
for i in range(3, 6):
worksheet.copycolumn(worksheet.columns[i-1], newworksheet2, newworksheet2.lastdatacolumn 1, copyrangeoptions.all)
# 从原始工作表复制行高到新工作表
for i in range(worksheet.rows.count):
newworksheet2.setrowheight(i 1, worksheet.getrowheight(i 1))
# 将新工作簿保存到指定文件夹
newworkbook2.savetofile(folderpath "3-5列.xlsx", fileformat.version2016)
newworkbook2.dispose()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。