Я создал скрипт, который создает фрейм данных, который я хотел бы вставить в документ Excel.В приведенном ниже коде я устанавливаю правильные параметры для настройки формата каждого столбца.
Как только Excel был создан, формат будет неправильным в каждой ячейке.Формат становится правильным только после того, как я дважды щелкну по ячейке.
Проверка формата документа Excel показывает, что для каждой строки мой формат был установлен кодом, но не отображался.
Заранее спасибоза любой совет, который может решить эту проблему.
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 30 10:28:45 2019
@author: ny
"""
import logging
import sys
import pyodbc # Database connector
import pandas as pd # Data frames
import datetime # Dates and time
from datetime import timedelta
import numpy as np
test = {'col1':['USD'],
'col2':['USD Fed'],
'col3':['2019-01-04 15:15:00'],
'col4':['2019-01-04 15:24:59.999'],
'col5':['1.13564'],
'col6':['1.13528'],
'col7':['1.13845'],
'col8':['1.137'],
'col9':['0.002474375682434556'],
'col10':['0.0015150447466703754'],
'col11':['-28.10'],
'col12':['-17.20']}
testdf = pd.DataFrame(data=test)
#results = results.sort_values(by=['TimeStart'], ascending=False)
#Excel
#results = results.applymap(str)
outputString = 'test' + "MarketMovement.xlsx"
writer = pd.ExcelWriter(outputString, engine = 'xlsxwriter')
testdf.to_excel(writer, sheet_name ='Events',index = False)
resultsLn = len(testdf)
Clength = 'A1:L'+str(resultsLn+1)
workbook = writer.book
num_fmt = workbook.add_format({'num_format': '#,##0.00000'})
day_fmt = workbook.add_format({'num_format': 'yyyy-mm-dd hh:mm:ss'})
worksheet = writer.sheets['Events']
worksheet.add_table(Clength, {'columns': [
{'header': 'titleCurrency'}#a
,{'header': 'Event'}#a
,{'header': 'TimeStart'}#a
,{'header': 'TimeEnd'}#b
,{'header': 't1HighRate'}#c
,{'header': 't1LowRate'}#d
,{'header': 't10HighRate'}#e
,{'header': 't10LowRate'}#f
,{'header': 'PercentHighChange'}#g
,{'header': 'PercentLowChange'}#h
,{'header': 'changeHighPips'}#i
,{'header': 'changeLowPips'}#j
],
'autofilter': True,
'total_row': False,
'style': 'Table Style Medium 2'})
worksheet.set_column('A:A', 20)
worksheet.set_column('B:B', 20)
worksheet.set_column('C:C', 20, day_fmt)
worksheet.set_column('D:D',20, day_fmt)
worksheet.set_column('E:E',25, num_fmt)
worksheet.set_column('F:F',25, num_fmt)
worksheet.set_column('G:G',25, num_fmt)
worksheet.set_column('H:H',25, num_fmt)
worksheet.set_column('I:I',25, num_fmt)
worksheet.set_column('J:J',25, num_fmt)
worksheet.set_column('K:K',25, num_fmt)
worksheet.set_column('L:L',25, num_fmt)
writer.save()
writer.close()
#Clear all kernel after finished
# import IPython
# app = IPython.Application.instance()
# app.kernel.do_shutdown(True)