2011-08-14 149 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采取了,非常感谢您的帮助。 –