Возможно, вам нужна запятая (,
) вместо точки с запятой (;
) в формуле. Это связано с тем, что Excel хранит формулы в синтаксисе в американском стиле (см. Функции, отличные от US Excel, и синтаксис в документации XlsxWriter).
Когда я запускаю вашу формулу через 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()
Выход: