使用xlwt为单元格添加文本超链接

3

我想在Excel单元格中的文本下方添加一个URL链接,以便用户可以访问该网站。我尝试了但没有成功,请帮忙。

base = xlwt.Workbook()
for k,v in MainDict.items():
    base.add_sheet(k)
    xlwt.add_palette_colour("custom_colour", 0x21)
    base.set_colour_RGB(0x21, 251, 228, 228)
    style = xlwt.easyxf('pattern: pattern solid, fore_colour custom_colour;font : bold on')
    style1 = xlwt.easyxf('font : underline single')
    index = MainDict.keys().index(k)
    ws = base.get_sheet(index)
    col=0
    for sk in MainDict[k].keys():
        ws.write(0,col,sk.upper(),style)
        col+=1
        row =1
        for mk in MainDict[k][sk].keys():
            for lk,lv in MainDict[k][sk][mk].items():
                for items in lv:
                    ws.write(row,col-1,(items + str(Formula('HYPERLINK("%s")'%mk))))
                    row+=1
base.save('project2.xls')

有什么问题吗?您能添加所需的内容并获取输出吗? - Gaurav Jain
1个回答

2

您需要将该文本作为 Formula 的一部分,& 可用于连接。例如:

import xlwt

wb = xlwt.Workbook()
ws = wb.add_sheet('test')

ws.write(0, 0, xlwt.Formula('"test " & HYPERLINK("http://google.com")'))

wb.save('test.xls')

我在lv中使用了for循环: ws.write(row,col-1,Formula('"%s " & HYPERLINK("%s")'% (items,lk))) #ws.write(row,col-1,Formula('HYPERLINK("%s")'%mk)) row+=1 现在它显示异常:字符串长度超过255个字符。 - Raghav Shaligram
如果“test”也是一个变量,那么该行应该如何编写? - ballade4op52
@Phillip使用字符串格式化,例如xlwt.Formula('"%s " & HYPERLINK("http://google.com")' % your_variable) - alecxe
@alecxe 我也遇到了同样的错误,因为我需要用一个变量替换谷歌链接文本:xlwt.Formula(' "%s " & HYPERLINK(' + link + ')' % name) - ballade4op52
公式 = 'HYPERLINK("{}", "{}")'.format(link, title) ws.write(0, 0, xlwt.Formula(formula)) 是一种使用变量来代替链接和标题的方法,其中链接不可见。 - ballade4op52
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接