2

我正在从 sqlite DB 时间戳信息写入列;我像所有纯文本列一样设置列字体。这完美地工作。除了我在日期列中实际有值的地方。

xlWriter=pd.ExcelWriter(xlPath,engine='xlsxwriter',datetime_format='D-MMM-YY')

为我想要的时间戳提供正确的格式。因为我的日期格式(下面,有点工作);似乎被默认文本格式(Calibir 11)覆盖,数字格式为 2019-10-01 00:00:00;其中有来自时间戳输出的值;该列的其余部分应用了正确的“dateFormat”。

dateFormat=xlWorkbook.add_format({ 'align': 'right', 'num_format': 'D-MMM-YY', 'font_name':'Arial', 'font_size':'10', 'left':1, 'right':1})


exStr='SELECT  [Date] as "Date [timestamp]",[hours],[travel],[km], [Details] FROM '+tbl

我的所有其他列都将正确的格式应用于整个列,例如

currencyFormat = xlWorkbook.add_format({ 'align': 'right', 'num_format': '$#,##0.00', 'font_name':'Arial', 'font_size':'10','right':1})
detailsFormat=xlWorkbook.add_format({'font_name':'Arial', 'font_size':'8','right':1})
stdFormat=xlWorkbook.add_format({'font_name':'Arial', 'font_size':'10','left':1,'right':1})
4

1 回答 1

2

在 XlsxWriter(和 Excel)中,单元格格式会覆盖列格式。Pandas 正在为其写入 XlsxWriter 文件的每个日期时间单元格添加单元格格式,因此列格式没有任何影响。

我不知道如何解决这个问题,除了用格式化的 XlsxWriter 值覆盖所有日期时间值,或者以某种方式关闭 Pandas 日期时间格式(我认为这是不可能的)。

于 2019-11-02T11:52:48.783 回答