不管是想要将重要的信息放到表格的开头,以便读者第一时间查阅,还是想修正表格中错误的排序,你都需要在 excel 中重新排列行或列。使用 python 进行这一操作可以使你轻松改变电子表格中数据的排序,并减少人工操作的错漏。
本文将介绍怎样使用 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 表格中的列
spire.xls 并未提供直接重新排列 excel 工作表中列或行顺序的方法。人生就是博尊龙凯时的解决方案需要创建一个目标工作表的副本。然后,你可以将副本工作表中的行或列以调整后的顺序复制到原始表格中。
下面是使用 python 重新排列 excel 表格中的列的步骤:
- 创建一个 workbook 对象。
- 从指定文件路径加载 excel 文档。
- 使用 workbook.worksheets[] 属性获取目标工作表。
- 在列表中确定列的新顺序。
- 创建一个临时工作表,将目标表格中的数据复制到该表格中。
- 通过 worksheet.columns[].copy() 方法,将临时工作表中的列按所需顺序复制到目标工作表。
- 删除临时工作表。
- 将工作簿保存为另一个 excel 文档。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个 workbook 对象
workbook = workbook()
# 加载 excel 文档
workbook.loadfromfile("sample2.xlsx")
# 获取指定工作表
targetsheet = workbook.worksheets[0]
# 在列表中指定新的列的顺序(列的索引从0开始)
newcolumnorder = [0, 1, 2, 3, 7, 8, 9, 4, 5, 6, 10]
# 添加一个临时工作表
tempsheet = workbook.worksheets.add("temp")
# 将目标工作表的数据复制到临时工作表中
tempsheet.copyfrom(targetsheet)
# 遍历新顺序列表
for i in range(len(newcolumnorder)):
# 将临时工作表的列按新顺序复制到目标工作表中
tempsheet.columns[newcolumnorder[i]].copy(targetsheet.columns[i], true, true)
# 重置目标工作表的列宽
targetsheet.columns[i].columnwidth = tempsheet.columns[newcolumnorder[i]].columnwidth
# 删除临时工作表
workbook.worksheets.remove(tempsheet)
# 保存工作簿为新的 excel 文档
workbook.savetofile("output/重排-列.xlsx", fileformat.version2016)
# 释放资源
workbook.dispose()
python 重新排列 excel 表格中的行
在 excel 电子表格中重新排列行的方法与调整列的顺序方法相类似。以下是重新排列 excel 工作表中行的步骤。
- 创建一个 workbook 对象。
- 从指定文件路径加载 excel 文档。
- 利用 workbook.worksheets[] 属性获取目标工作表。
- 将新顺序整理到列表。
- 创建一个临时工作表,并将目标工作表的数据复制到其中。
- 通过 worksheet.rows[].copy() 方法, 按照新顺序将临时工作表的行复制到目标工作表中。
- 删除临时工作表。
- 将修改后的工作簿保存为新文档。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个 workbook 对象
workbook = workbook()
# 加载 excel 文档
workbook.loadfromfile("sample2.xlsx")
# 获取指定工作表
targetsheet = workbook.worksheets[0]
# 在列表中指定新的行的顺序(行的索引从0开始)
newroworder = [0, 1, 4, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
# 添加一个临时工作表
tempsheet = workbook.worksheets.add("temp")
# 将目标工作表的数据复制到临时工作表中
tempsheet.copyfrom(targetsheet)
# 遍历新顺序列表
for i in range(len(newroworder)):
# 将临时工作表的行按新顺序复制到目标工作表中
tempsheet.rows[newroworder[i]].copy(targetsheet.rows[i], true, true)
# 重置目标工作表的行高
targetsheet.rows[i].rowheight = tempsheet.rows[newroworder[i]].rowheight
# 删除临时工作表
workbook.worksheets.remove(tempsheet)
# 保存工作簿为新的 excel 文档
workbook.savetofile("output/重排-行.xlsx", fileformat.version2016)
# 释放资源
workbook.dispose()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。