2011-08-14 154 views
10

我正在閱讀an Excel file使用xlrd。在一列中,我有一個公司名稱,它被格式化爲一個超鏈接(意味着它後面有一個URL)。當我得到單元格值時,我只能得到公司名稱。我怎樣才能得到它後面的URL?從Excel文檔獲取超鏈接URL

以下是使用xlrd模塊讀取Excel文件的代碼(假設文件已導入)。

mainData_book = xlrd.open_workbook("IEsummary.xls", formatting_info=True) 
mainData_sheet = mainData_book.sheet_by_index(0) # Get the first sheet 0 
start = 1 
end = 101 
for counter in range(start, end): 
    rowValues = mainData_sheet.row_values(counter, start_colx=0, end_colx=8) 
    company_name = rowValues[0] #how i can get link here also?? 
+0

請張貼一些代碼,所以我們可以有一個基礎的回答!並嘗試修正標題以包含相關關鍵字。 – DGM

+1

@Aamir Adnan添加了示例文件的鏈接。我是否正確捕捉了結構?隨意將其替換爲您的示例文件的鏈接。 – phihag

+0

@phihag:謝謝,這現在更有意義的問題:)(我不知道爲什麼我在這個問題上得到否定的投票,這是真正的問題傢伙,請大力幫助) –

回答

8

在xlrd 0.7.2或更高版本,可以使用hyperlink_map

import xlrd 
mainData_book = xlrd.open_workbook("IEsummary.xls", formatting_info=True) 
mainData_sheet = mainData_book.sheet_by_index(0) 
for row in range(1, 101): 
    rowValues = mainData_sheet.row_values(row, start_colx=0, end_colx=8) 
    company_name = rowValues[0] 

    link = mainData_sheet.hyperlink_map.get((row, 0)) 
    url = '(No URL)' if link is None else link.url_or_path 
    print(company_name.ljust(20) + ': ' + url) 
+0

從哪裏我可以下載xlrd 0.7.2版本? –

+0

@Adamari Adnan我用'svn co https:// secure.simplistix.co.uk/svn/xlrd/trunk /'檢出了開發版本。看起來0.7.2還沒有發佈。 – phihag

+0

好吧,我已經從svn採取了,非常感謝您的幫助。 –