Как упорядочить данные в окне сообщения? питон-Tkinter - PullRequest
0 голосов
/ 08 октября 2019

Моя текущая цель - отобразить данные в окне сообщения . Как показано на этом рисунке, данные повсюду, но если я отправлю их в Excel , они будут выглядеть отлично, тогда как окно сообщения просто не ровное.

Как можно выровнятьотображаемые данные в окне сообщения просто чтобы выглядеть как Excel?

Вот мой код:

import tkinter as tk
import tkinter.messagebox as tm
import pandas
import datetime


def currency_rate():
    dfs=pandas.read_html('https://rate.bot.com.tw/xrt?Lang=en-US')
    currency=dfs[1] 
    currency= currency.iloc[:,0:5] 
    currency.columns=['currency','cash-buying','cash-selling','spot-buying','spot-selliing'] 
    currency['currency'] =currency['currency'].str.extract('\((\w+)\)')  
    date=datetime.datetime.now() 
    result_date="Update: Date {:4}.{:02}.{:02}-Time {:02}:{:02}:{:02}".format(date.year,date.month,date.day,date.hour,date.minute,date.second)
    tm.showinfo(title =str(result_date), message =str(currency))  

def currency_rate_import():    
    dfs=pandas.read_html('https://rate.bot.com.tw/xrt?Lang=en-US')
    currency=dfs[1] 
    currency= currency.iloc[:,0:5] 
    currency.columns=['currency','cash-buying','cash\nselling','spot\nbuying','spot-selliing'] 
    currency['currency'] =currency['currency'].str.extract('\((\w+)\)')  
    date=datetime.datetime.now() 
    currency.to_excel('Currency Rate{:4}{:02}{:02}-Daily.xlsx'.format(date.year,date.month,date.day))

my_window=tk.Tk()


btn2=tk.Button(my_window,text="Export (Excel)",font="Calibri 14",width=25,height=1,command=currency_rate_import)
btn2.pack(side=tk.BOTTOM) 
btn1=tk.Button(my_window,text="Today\'s exchange rate",font="Calibri 14",background="yellow",width=25,height=1,command=currency_rate)
btn1.pack(side=tk.BOTTOM) 

my_window.mainloop() 

1 Ответ

0 голосов
/ 08 октября 2019

У меня есть хороший опыт использования панд с tabulate , а затем вставки в окно Tkinter с tkinterhtml .

У вас есть "stralign" и "numalign" в tabulate идаже "floatfmt" для всех видов форматов и выравнивания при создании таблиц.

пример для использования:

from tabulate import tabulate
from tkinterhtml import HtmlFrame

html = tabulate(df, 
                headers='keys',
                floatfmt=",.1f", tablefmt='html',
                numalign='center', stralign='center')
top = tk.Toplevel()
hf = HtmlFrame(top)
hf.pack()
hf.set_content(html)
...