恐怕我无法设置一个完美的repo,但我希望能收到一些提示。
我的应用服务器在英国,设置为英国,我想向其提供此增强功能的最终用户在美国,设置为美国。
因此,我试图通过在Python中格式化日期字段/列来促进日期类型转换,如下所示
d.strftime('%m/%d/%Y')
然后我用格式写xlsx
format3 = workbook.add_format({'num_format': 'mm/dd/yy'})
worksheet.write(row, col, item[0], format3)
当我打开xlsx并尝试按日期筛选时,Excel无法将该列正确识别为日期。这只是我在英国的问题,还是我在美国的用户的问题?
奖励积分
我已经看到了答案,现在我有一个更难的问题。假设我在英国。如果我在Excel中将单元格保存为日期,当我的用户在美国打开它时,他们会看到本地化格式的cel。
如何在python-xlsx中实现它?
这就是我尝试过的
import xlsxwriter
from datetime import date
mydate = date(2021,12,29)
path = 'C:\my\path\test.xlsx'
wb = xlsxwriter.Workbook(path)
format = wb.add_format({'num_format': 'dd/mm/yyyy'})
ws = wb.add_worksheet('mydates')
ws.write(0,0,'date')
ws.write(1,0,mydate, format)
wb.close()
当我在excel中打开它时,它会说这是一个日期,而不是定制的。
但是,当我从cmdcontrol international
启动并选择不同的语言格式(假设我从英国切换到美国(,然后再次打开xlsx时,日期的格式不会转换
我试图促进日期类型转换
一个人根本不会尝试">方便">日期类型转换,以这种方式传递字符串。单元格的可视化格式与单元格内容值完全脱节,因此请使用workbook.add_format
和worksheet.write
保留您的代码(关于格式可视化(
format3 = workbook.add_format({'num_format': 'mm/dd/yy'})
worksheet.write(row, col, item[0], format3)
我建议删除字符串格式(在内容值中(:
d # .strftime('%m/%d/%Y')
它只是在xlsxwriter中开箱即用,具有本地Python与Excel的日期类型。
奖励积分
有一个魔术可以获得您的加分。您必须使用Excel标准日期格式:它是数字14,十六进制的E
。
format = wb.add_format()
format.set_num_format(0x0E)
完成!