Первый вопрос: возможно ли установить формат даты в Excel, который изменится в соответствии с выбранным языком? Я не думаю, что это так.
Если вы установите какой-либо формат стиля «мм-дд-гггг» в Excel, то вы получите этот формат в других локалях (кроме разделителя).
Таким образом, если это невозможно в Excel, это не будет возможно в XlsxWriter (и в равной степени, если это возможно в Excel, тогда это будет работать так же в XlsxWriter).
Один частичный обходной путь - использовать один встроенных числовых форматов Excel в XlsxWriter. Это числовые индексы, а не строки:
import xlsxwriter
from datetime import date
workbook = xlsxwriter.Workbook('sample.xlsx')
worksheet = workbook.add_worksheet()
my_date = date(2020, 1, 31)
my_format = workbook.add_format({'num_format': 14})
worksheet.write(0, 0, my_date, my_format)
workbook.close()
Эта дата (31 декабря 2020 года) дает 20-12-31
в канадской локали и 31.12.20
в немецкой локали. Однако не существует встроенного формата, который бы давал 4 ди git года.
См. Также Категории числовых форматов и Числовые форматы в разных локалях в документы XlsxWriter.