Python 为不同文化/国家设置xlsx日期列格式(英国与美国)
恐怕我不能设置一个完美的复制,尽管如此,我希望我能得到一些提示 我的应用程序服务器位于英国,具有英国设置,我希望向其提供此增强功能的最终用户位于美国,具有美国设置 因此,我尝试通过在Python中格式化日期字段/列来促进日期类型转换,如下所示Python 为不同文化/国家设置xlsx日期列格式(英国与美国),python,date,xlsx,xlsxwriter,Python,Date,Xlsx,Xlsxwriter,恐怕我不能设置一个完美的复制,尽管如此,我希望我能得到一些提示 我的应用程序服务器位于英国,具有英国设置,我希望向其提供此增强功能的最终用户位于美国,具有美国设置 因此,我尝试通过在Python中格式化日期字段/列来促进日期类型转换,如下所示 d.strftime('%m/%d/%Y') 然后我使用一种格式编写xlsx format3 = workbook.add_format({'num_format': 'mm/dd/yy'}) worksheet.write(row, col, ite
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时,日期的格式不会转换
我试图促进日期类型转换
人们根本不试图通过以那种方式传递字符串来“促进”日期类型转换。单元格的可视化格式与单元格的内容值完全不相交,因此请使用工作簿保存您的代码(关于格式可视化)。添加格式
和工作表。编写
format3 = workbook.add_format({'num_format': 'mm/dd/yy'})
worksheet.write(row, col, item[0], format3)
但是删除愚蠢的字符串格式(在内容值中):
它只是在xlsxwriter中使用本机Python和Excel日期类型的开箱即用
加分
有一个魔术可以让你获得积分。您必须使用Excel标准日期格式:它是十六进制的数字14,E
format = wb.add_format()
format.set_num_format(0x0E)
完成了
format = wb.add_format()
format.set_num_format(0x0E)