날짜가 xlsxwriter의 정렬 설정을 무시한 채로 셀의 오른쪽 하단에 표시됩니다. MWE :python xlsxwriter가 날짜를 맞 춥니 다.
import pandas
df = pandas.DataFrame(
{
"ints": [1, 2, 3]
, 'primes': [2, 3, 5]
, 'odds': [1, 3, 5]
, 'fechas': ['2017-04-07', '2017-05-09', '2017-11-30']
}
)
df['fechas'] = pandas.to_datetime(df['fechas']).dt.date
print(df)
xlsx_writer = pandas.ExcelWriter(
'test.xlsx'
, engine='xlsxwriter'
, date_format='mm/dd/yyyy'
)
df.to_excel(xlsx_writer, sheet_name='Sheet1', index=False)
wb = xlsx_writer.book
ws = xlsx_writer.sheets['Sheet1']
dollar_format = '_($* #,##0.00" "_);_($* (#,##0.0);_($* "-"??_);_(@_)'
dollar_format_wb = wb.add_format({'num_format': dollar_format, 'valign': 'vcenter'})
centre_format_wb = wb.add_format({'align': 'center', 'valign': 'vcenter'})
ws.set_column('A:A', 25, centre_format_wb)
ws.set_column('B:B', 20, centre_format_wb)
ws.set_column('C:C', 15, centre_format_wb)
ws.set_column('D:D', 10, dollar_format_wb)
# The code below was included to generate the screenshot, but isn't
# strictly necessary for the MWE
shadedrow_format_wb = wb.add_format(
{
'bg_color': '#EEEEEE'
, 'left': 1
, 'left_color': '#FFFFFF'
}
)
for r in range(0, 2 + df.shape[0]):
ws.set_row(r + 1, 45)
print(r)
if r % 2 == 0:
# a kludge as we can't change cell range formats after the fact without re-entering cell contents
ws.conditional_format('A{:}:D{:}'.format(r, r), {'type': 'no_errors', 'format': shadedrow_format_wb})
print("\t", r)
xlsx_writer.save()
열 A, B, C 및 수평 중심되어야하고, 모든 셀의 내용이 중심 수직으로 헤더를 제외한 모든 열은, 높이 45이어야한다.
모두는 날짜 열을 제외하고 ,해야처럼 작동합니다. 이것이 작동하지 않아야하는 좋은 이유가 있습니까? 날짜를 중앙에 올리는 올바른 방법이 있습니까? 그게 버그 야? 해결 방법이 있습니까?
나는 시트를 먼저 포맷하고, 효과없이 마지막으로 df.to_excel()
을 실행 해 보았습니다.
감사합니다.
사과 - 내가 편집이 더 나은 사소한했다한다는 것은 무시 이해력 (그리고 더 정확한 제목을 만들었습니다.) – GoneAsync