首页 > 解决方案 > 使用python在表格中显示csv数据

问题描述

如何在 Tkinter 树视图中手动显示 CSV 文件数据?

在这里,我尝试使用树视图显示 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')

我没有得到任何括号,并且时间戳列没有分开。

为什么会这样?请建议。

谢谢并恭祝安康。 结果图像

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()

标签: pythonpandastkintertreeview

解决方案


谢谢acw1668。使用元组问题解决了。

现在我如何插入行号?


推荐阅读