2017-02-11 38 views
2

我使用python 2.7的openpyxl來操縱一些工作簿。我爲類工作表實現了我自己的方法,除非在嘗試訪問它們時找不到它們。我在Windows上,我已經將以下代碼添加到site-packages/openpyxl/worksheet/worksheet.py。源代碼herePython。添加自定義方法到現有的網站包

class Worksheet(_WorkbookChild): 
""" 
Library defined methods here. 
""" 

    #My Method. 
    def hello_world(self): 
     print "Hello from worksheet." 

當我打開的工作簿,並嘗試和類工作表的範圍之內調用我的函數它將引發錯誤的,即使它被定義「沒有屬性」(正確?)。

import openpyxl 

wb = openpyxl.load_workbook('helloworld.xlsx') 
sheet = wb.get_active_sheet() 

sheet.hello_world() 
AttributeError: 'Worksheet' object has no attribute 'hello_world' 

我是否需要以不同的方式更新現有庫?我刪除了.pyc,重新編譯並仍然收到相同的錯誤。

回答

0

對於遇到此問題的其他人。當我使用常規選項卡時,圖書館爲每個縮進使用了4個空格。縮進量的變化導致該方法即使看起來似乎也沒有被定義。

+0

如果您使用Python 3,混合選項卡和空格將引發異常。建議**總是**使用空格並相應地配置您的編輯器。 –

相關問題