Python修改已有文件时,openpyxl会丢失超链接
奇怪的是,当加载一个已经存在的excel与openpyxl并再次保存时,文件中的超链接就消失了。
无论是openpyxl 1.7.2或最新的1.8.5都有这个问题。
任何人都可以帮助解决这个问题
还是比openpyxl有更好的select?
我知道xlrd / xlwt和XlsxWriter,但是xlwt不支持.xlsx文件,并且XlsxWriter不能读取已存在的文件。 我需要在应用程序中多次修改文件。
[更新]:看这里 。 看来这是错误尚未解决?
以下代码可能对您的testing有帮助。
#-*- 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()
[2017-03-07已更新]: 错误已修复,问题不再存在。
尝试在Excel中使用HYPERLINK
函数。 这会导致一个公式,而不是该单元格中的值,但从用户的angular度来看,它可能没有什么区别:
ws.cell('A1').value = '=HYPERLINK("http://www.google.com","Click Me")'
作为塞德里克答案的附录,如果想要直接使用内置的超链接function,可以使用以下格式作为链接:
'=HYPERLINK("{}", "{}")'.format(link, "Link Name")
如果没有这种格式,该文件不会打开我不需要修复,这将删除与企图超链接的单元格值。
例如ws.cell(row=1, column=1).value = '=HYPERLINK("{}", "{}")'.format(link, "Link Name")