熊猫中的超链接(数据框为excel)

时间:2019-06-04 13:53:28

标签: python pandas xlsxwriter

我正在尝试使用特定列中的url链接创建一个Excel文件。 像这样

Table with lionk

def fill_table(table):
    if elapsed_time > datetime.timedelta(minutes=args.mtime):
        table.loc[len(table)] = [hostname, int(trigger_id), description, eventStartDate, eventEndDate, elapsed_time, message, useralias, link]
...
writer = pd.ExcelWriter(args.output, engine='xlsxwriter')

我试图在链接变量中使用excel超链接公式

link = '=HYPERLINK(\"{0}/tr_events.php?triggerid={1}&eventid={2}\"; \"{3}\")'.format(args.url, trigger_id,event['eventid'], event['name'])

但是打开文件时,“链接”列填充零时出现错误消息

2 个答案:

答案 0 :(得分:2)

在公式中可能需要逗号(,)而不是分号(;)。这是因为Excel以美式风格的语法存储公式(请参阅XlsxWriter文档中的Non US Excel functions and syntax)。

当我通过XlsxWriter运行您的公式时,我得到一个Excel警告:“我们在'demo.xlsx'中发现了某些内容的问题”,并且当我单击“是”以恢复公式时,为零,如您所述。

将分号更改为逗号可以使程序正常运行而不会发出警告,并且符合预期:

import xlsxwriter

workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()

link = '=HYPERLINK(\"{0}/tr_events.php?triggerid={1}&eventid={2}\", \"{3}\")'.format('www.foo.com', 'abc', 'def', 'event1')

worksheet.write('A1', link)

# Or with a hyperlink format.
url_format = workbook.get_default_url_format()
worksheet.write('A2', link, url_format)

workbook.close()

输出:

enter image description here

答案 1 :(得分:1)

使用xlwt,它具有一个公式模块,该模块将作为公式对象存储在您的数据框中。

然后您可以使用df.to_excel将其写为excel与熊猫一起使用:

name

然后,当将其传递给excel时,它应该作为传递的任何内容的公式出现。我仅使用$(document).ready(function () { $("a#ToggleElement").on("click", function () { $(this).children("i").toggleClass('fa-angle-up'); }); }); 函数对其进行了测试,但效果很好。