2012-04-26 883 views
1

我正在做一些使用python-excel模块的测试。我似乎无法找到一种方法来删除使用这些模块的Excel表中的一行,而互联网并未提供解决方案。有没有办法使用其中一个python-excel模块删除一行?删除excel行xlwt,python

在我的情况下,我想打开一个excel表格,如果第一行读取,请确定它是否包含一些有效数据,如果没有,则删除它。

欢迎任何建议。

Mike

回答

2

xlwt提供了模块名称暗示的Excel编写器(创建而非修改)funcionality。另一方面,xlrd提供了Excel阅读器的功能。

如果源Excel文件相当简单(没有花哨的图形,数据透视表等),你应该继续这样:

与xlrd模块读取目标excel文件的内容,然后用xlwt模块创建新的excel文件,其中包含必要的行。

如果你在windows平台上运行这个工具,你可能会直接通过Microsoft COM对象see old book reference来操纵Excel。

+0

Thansk的建议jbreicis! – Mike 2012-04-26 19:24:49

+0

@Mike欢迎您 – jbreicis 2012-04-26 19:34:11

1

我有同样的问题,但发现周围散步:

  1. 使用自定义过滤器进程(阅读器>过滤器1>过滤器2> ...>作家)生成源副本excel文件但在前面插入一个空白列。我们称之为augmented.xls

  2. 然后,使用xlrd.open_workbook()将augmented.x.xls读入xlrd.Workbook对象rb

  3. 使用xlutils.copy.copy()将rb转换为xlwt.Workbook对象wb

  4. wb中将每个待删除行的第一列的值设置为“x”(或其他值作为标记)。

  5. 保存wb返回augmented.xls

  6. 使用另一个定制滤波处理由在第一列中省略的那些行用“x”和移位的所有列左边一列,以生成从augmented.xls所得excel文件(相当于删除标记的第一列)。

信息和定义过滤器处理的例子可以在http://www.simplistix.co.uk/presentations/python-excel.pdf

希望这有助于以某种方式被发现。