修改现有文件时,Python openpyxl会丢失超链接

Bia*_*ing 4 python excel hyperlink openpyxl

奇怪的是,当使用openpyxl加载现有的excel并再次保存时,文件中的超链接会消失.

无论是openpyxl 1.7.2还是最新的1.8.5都有这个问题.

有人可以帮忙解决这个问题吗?

还是有比openpyxl更好的选择?

我知道xlrd/xlwt和XlsxWriter,但xlwt不支持.xlsx文件,而XlsxWriter无法读取现有文件.我需要在我的应用程序中多次修改文件.

[更新]:看这里.似乎这个bug尚未修复?

以下代码可能对您的测试有所帮助.

#-*- coding: utf-8 -*-
import openpyxl

def create():
    wb = openpyxl.Workbook()
    ws = wb.worksheets[0]

    ws.cell('A1').value = 'Click Me'
    ws.cell('A1').hyperlink = 'http://www.google.com'

    wb.save('test1.xlsx')

def rewrite():
    wb = openpyxl.load_workbook('test1.xlsx')
    ws = wb.worksheets[0]

    wb.save('test2.xlsx')

if __name__ == '__main__':
    create()
    rewrite()
Run Code Online (Sandbox Code Playgroud)

[2017-03-07更新]:错误已修复,问题不再存在.

小智 7

尝试HYPERLINK在Excel中使用该功能.这导致公式而不是该单元格中的值,但从用户的角度来看,它最有可能没有区别:

ws.cell('A1').value = '=HYPERLINK("http://www.google.com","Click Me")'
Run Code Online (Sandbox Code Playgroud)