2011-07-26 28 views
4

我使用用於Python的awesome xlwt模塊將一些信息導出到Excel工作簿。我知道,我能有一定的細胞包含一個指向超鏈接到外部網站是這樣的:使用用於Python的xlwt模塊向其他單元添加鏈接

from xlwt import Workbook, Formula 
    wb = Workbook() 
    sheet = wb.add_sheet('testing links') 
    link = 'HYPERLINK("http://stackoverflow.com/"; "SO")' 
    sheet.write(0, 0, Formula(link)) 
    wb.save("testbk.xls") 

不過,我真正想要做的是類似的文件「通過鑽」。例如,我想讓「sheet1」中的單元格A1指向「sheet3」中的單元格F5。

有人知道我所問的是否可能;如果是這樣,我必須使用什麼語法來實現它?

+1

你就不能使用相同的方法與上面的任何語法將在Excel中? – agf

回答

3

你可能想是這樣的:

# to get to a different sheet in XL, use the sheet name, an !, and then the 
# cell coordinates. In this case, you're going to sheet3, cell F3 
link = 'sheet3!F3' 
# This is still a formula, so you should link it as such. 
sheet.write(0, 0, xlwt.Formula(link)) 
+0

那麼,原始海報明確要求超鏈接,而不僅僅是使用另一個單元格的公式。 – jmster

2

如果您已經創建這樣的表格:

sheet = wbk.add_sheet('Type ' + str(i)) 

您可能會發現獲得的超鏈接工作的唯一途徑是增加一個單引號(轉義)

link = 'HYPERLINK("#\'Type '+ str(i) + '\'!A1", "Link")' 
sheet.write(0, 1, xlwt.Formula(link)) 
+0

這隻適用於表單名稱包含空格的情況。像'O'Reilly的數據'這樣的表名需要輸入爲O''Reilly'的數據',即按照與SQL中的字符串字面值相同的過程輸入:雙擊字符串中的每個撇號,然後在開始和結束。這最好用'xlwt.Utils.quote_sheet_name(unquoted_sheet_name)'完成,它執行所需的引用並檢查輸入的有效性。檢查的基本原理是,在文件創建時獲得明智的錯誤消息比在(稍後)文件打開時從Excel發出的亂碼消息更好。 –