2012-04-26 889 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

希望這有助於以某種方式被發現。