我必须生成一个包含汇总结果的 excel。结果包含在列表中。一些元素是值和一些链接。
我设法以正确的格式生成了 excel,但没有在某些单元格中生成超链接
我的尝试: 从 openpyxl 导入工作簿
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font, Fill
from openpyxl.cell import get_column_letter
def summaryMCP(self,result):
c1=Column('Name',[result[0]])
c2=Column('R2 check',[result[1]])
c3=Column('Dir Diff.',[result[2]])
c4=Column('CHI2 Sm-Sc',[result[3]])#Lets say this one is a hyperlink to one image png
c5=Column('Rose Sm-Sc',[result[4]])
s=Sheet("MCP main results", [c1,c2,c3,c4,c5]
excelMCP([s],"/results.xlsx")
def excelMCP(self, sheets,foname):
wb = Workbook()
ws = wb.active
#from here format options (a bit long)
我的问题是,当在 def summaryMCP 中定义列然后在 excelMCP 中定义链接的格式时,我可以定义该值是一个超链接吗?万一,怎么办?至今没找到
如果想直接使用Excel内置的超链接功能,可以使用以下格式设置为链接:
'=HYPERLINK("{}", "{}")'.format(link, "Link Name")
例如
ws.cell(row=1, column=1).value = '=HYPERLINK("{}", "{}")'.format(link, "Link Name")
这对我有用:
wbook.active['A8'].hyperlink = "http://www.espn.com"
wbook.active['A8'].value = 'ESPN'
wbook.active['A8'].style = "Hyperlink"
试试这个:
sheet['A1'].hyperlink = "http://stackoverflow.com"
sheet['A1'].value="StackOverflow"
在我的尝试中,这不会添加 Excel 使用超链接放置的格式,但单元格内容更像是 Excel 超链接单元格,而不是我使用 HYPERLINK 标签获得的。
这对我有用。
sheet.column_dimensions["A"].width = 30
sheet.cell(row=1, column=1).hyperlink = "http://www.espn.com"
book.save('links.xlsx')