Показать данные CSV в таблице, используя python - PullRequest
0 голосов
/ 21 января 2020

Как отобразить данные файла CSV вручную в виде дерева Tkinter?

Здесь я пытаюсь показать данные файла CSV с помощью просмотра дерева. Для вставки данных вручную в tkinter используется эта команда:

tree.insert('', 'end', values = (val[sorted(j for j in range(k[1]))]),tag = 'gray')

При этом я получаю скобки на GUI, а столбец отметки времени отделен.
при использовании

tree.insert('', 'end', values = (val[0],val[1],val[2],val[3],val[4],val[5],val[6],val[7],val[8],val[9],val[10],val[11],val[12],val[13],val[14],val[15]),tag = 'gray')

I я не получаю скобок, и столбец метки времени не разделен.

Почему это происходит? Пожалуйста, предложите.

Спасибо и всего наилучшего. Result_image

from tkinter import *
from tkinter import ttk
import pandas as pd
from tkinter import filedialog
from tkinter.filedialog import askopenfile
root = Tk()
root.geometry("1500x200")

data = []
file = ('E:\\PYTHON\\data transfer\\shiva new\\100lines.csv')
csv_data = pd.read_csv(file)
k = csv_data.shape
print(k)
values = csv_data.values
columns = csv_data.columns
frame = Frame(root,height=500,width=500)
frame.pack(fill='both',expand=1)
tree = ttk.Treeview(frame, columns = (sorted(col for col in range(1,k[1]+2))),height = 2, show = "headings")
print(tree['columns'])
tree.pack(side = 'left',fill='both',expand=1)

scroll1 = Scrollbar(frame, orient="vertical", command=tree.yview)
scroll1.pack(side = 'right', fill = 'y')

tree.configure(yscrollcommand=scroll1.set)

scroll2 = Scrollbar(root, orient="horizontal", command=tree.xview)
scroll2.pack(side = 'bottom', fill = 'x')

tree.configure(xscrollcommand=scroll2.set)

for i in range(1,k[1]+2):
    print(i)
    tree.heading(i, text=i)#(k for k in range(k[1]))
    tree.column(i, width = 80)


for i,val in enumerate(values):

    i1 = i%2
    if (i1==0):

        tree.insert('', 'end', values = (val[sorted(j for j in range(k[1]))]),tag = 'gray')

        #tree.insert('', 'end', values = (val[0],val[1],val[2],val[3],val[4],val[5],val[6],val[7],val[8],val[9],val[10],val[11],val[12],val[13],val[14],val[15]),tag = 'gray')
    else:
        tree.insert('', 'end', values = (val[0],val[1],val[2],val[3],val[4],val[5],val[6],val[7],val[8],val[9],val[10],val[11],val[12],val[13],val[14],val[15]))
        #tree.insert('', 'end', values = (val[sorted(j for j in range(k[1]))]))
tree.tag_configure('gray', background='#cccccc')        
root.mainloop()

1 Ответ

0 голосов
/ 21 января 2020

Спасибо, acw1668. проблема использования кортежа решена.

Теперь, как я могу вставить номера строк?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...