Je dois générer un Excel avec des résultats résumés. Les résultats sont inclus dans une liste. Certains éléments sont des valeurs et des liens.
J'ai réussi à générer l'Excel avec le bon format mais pas à générer le lien hypertexte dans certaines cellules
Mon essai: depuis le classeur d'importation 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)
Ma question est: puis-je définir que la valeur est un lien hypertexte lors de la définition de la colonne dans def summaryMCP puis dans excelMCP le format du lien ?? Et au cas où, comment? Je n'ai pas pu le trouver jusqu'ici
Si vous souhaitez utiliser directement la fonction de lien hypertexte intégrée d'Excel, vous pouvez utiliser les éléments suivants pour formater en tant que lien:
'=HYPERLINK("{}", "{}")'.format(link, "Link Name")
par exemple. ws.cell(row=1, column=1).value = '=HYPERLINK("{}", "{}")'.format(link, "Link Name")
Essaye ça :
sheet['A1'].hyperlink = "http://stackoverflow.com"
sheet['A1'].value="StackOverflow"
Dans mon essai, cela n'ajoute pas la mise en forme qu'Excel met avec un lien hypertexte, mais le contenu de la cellule ressemble plus à la cellule de lien hypertexte Excel que je ne le fais avec la balise HYPERLINK.
Cela a fonctionné pour moi.
sheet.column_dimensions["A"].width = 30
sheet.cell(row=1, column=1).hyperlink = "http://www.espn.com"
book.save('links.xlsx')
Cela fonctionne pour moi:
wbook.active['A8'].hyperlink = "http://www.espn.com"
wbook.active['A8'].value = 'ESPN'
wbook.actibe['A8'].style = "Hyperlink"