我正在使用 python-excel 模块进行一些测试。我似乎找不到使用这些模块删除 Excel 工作表中的一行的方法,而且互联网也没有提供解决方案。有没有办法使用 python-excel 模块之一删除一行?
就我而言,我想打开一个excel表,读取第一行,确定它是否包含一些有效数据,如果没有,则将其删除。
欢迎任何建议。
xlwt 提供了模块名称所暗示的 Excel 编写器(创建而不是修改)功能。另一方面,xlrd 提供 Excel 阅读器功能。
如果您的源 excel 文件相当简单(没有花哨的图表、数据透视表等),您应该这样做:
使用 xlrd 模块读取目标 excel 文件的内容,然后使用 xlwt 模块创建包含必要行的新 excel 文件。
但是,如果您在 Windows 平台上运行此程序,则可以直接通过 Microsoft COM 对象操作 Excel,请参阅旧书参考。
我遇到了同样的问题,但发现了一个四处走走:
使用自定义过滤器过程(Reader>Filter1>Filter2>...>Writer)生成源 excel 文件的副本,但在前面插入一个空白列。我们称这个文件为 augmented.xls。
然后,rb
使用 xlrd.open_workbook() 将 augmented.xls 读入 xlrd.Workbook 对象。
使用 xlutils.copy.copy() 转换rb
为 xlwt.Workbook 对象,wb
.
将每个待删除行的第一列的值设置为“x”(或其他值作为标记)wb
。
保存wb
回augmented.xls。
使用另一个自定义过滤器过程从augmented.xls生成结果 excel 文件,方法是省略第一列中带有“x”的行并将所有列向左移动一列(相当于删除第一列标记)。
定义过滤过程的信息和示例可以在http://www.simplistix.co.uk/presentations/python-excel.pdf中找到
希望这在某种程度上有所帮助。
你可以使用图书馆openpyxl
。打开文件时,它既可以用于读取,也可以用于写入。然后,通过一个简单的功能,您可以实现:
from openpyxl import load_workbook
wb = load_workbook(filename)
ws = wb.active()
first_row = ws[1]
# Your code here using first_row
if first_row not valid:
ws.delete_rows(1, amount=1)