鱼C论坛

 找回密码
 立即注册
查看: 3484|回复: 12

[已解决]Tkinter 如何打开 Excel

[复制链接]
发表于 2022-10-29 18:50:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x


程 序 运 行 后 显 示 的 “人才组” 下 拉 菜 单 中,欲 要 点 击 “文件” (文件在 e:/Python/girl.xlsx), 怎 么 写 代 码 呀 ?
from tkinter import *
import pandas as pd
root = Tk()
root.title("个人娱乐计算机管理系统")
root.config(background="beige")
root.iconbitmap("e:/Python/11.ico")
root.geometry("600x200+850+200")

def callback():
    print("计算机程序完善中......")

def wj():
    file_1=pd.read_excel("e:/Python/girl.xlsx")

menubar=Menu(root)    # 创建一个顶级菜单

# 创建“人才组”下拉菜单,而后添加到顶级菜单中
talentmenu=Menu(menubar,tearoff=False)
talentmenu.add_command(label="成员",command=callback)
talentmenu.add_command(label="文件",command=wj)
talentmenu.add_command(label="考勤",command=callback)
talentmenu.add_command(label="备用",command=callback)
talentmenu.add_separator()
talentmenu.add_command(label="退出",command=root.quit)
menubar.add_cascade(label="人才组",menu=talentmenu)

root.config(menu=menubar)    # 显示菜单
mainloop()
最佳答案
2022-10-30 14:03:45
dragov 发表于 2022-10-30 08:25
如何将 Excel 的数据放到 Treeview 中呢 ?

核心代码
def load():
    tree.delete(*tree.get_children())
    wb=load_workbook(r"2022.xlsx",data_only=True)
    ws=wb.active
    cres=ws["a1:d10"]
    for row in ws.iter_rows(min_row=1,max_row=10,max_col=4):
      i=1
      res=[cell.value for cell in row]
      tree.insert("",i,values=res)
      i+=1
  

btnload=tkinter.Button(root,text="导入数据",command=load)
btnload.place(x=160,y=530,width=100,height=40)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-29 19:31:23 | 显示全部楼层
tkinter有一个模块叫做filedialog,它的里面提供了一个名为askopenfilename的函数可以创建一个弹窗让用户选择要打开的文件
from tkinter import filedialog as fd

name = fd.askopenfilename()
print(name)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-29 19:37:19 | 显示全部楼层
Brick_Porter 发表于 2022-10-29 19:31
tkinter有一个模块叫做filedialog,它的里面提供了一个名为askopenfilename的函数可以创建一个弹窗让用户选 ...

按照您的提示,我修改了代码,不行的 ......
from tkinter import *
import pandas as pd
from tkinter import filedialog
root = Tk()
root.title("个人娱乐计算机管理系统")
root.config(background="beige")
root.iconbitmap("e:/Python/11.ico")
root.geometry("600x200+850+200")

def callback():
    print("计算机程序完善中......")

def wj():
    name = filedialog.askopenfilename()
    print(name)
    # file_1=pd.read_excel("e:/Python/girl.xlsx")

menubar=Menu(root)    # 创建一个顶级菜单

# 创建“人才组”下拉菜单,而后添加到顶级菜单中
talentmenu=Menu(menubar,tearoff=False)
talentmenu.add_command(label="成员",command=callback)
talentmenu.add_command(label="文件",command=wj)
talentmenu.add_command(label="考勤",command=callback)
talentmenu.add_command(label="备用",command=callback)
talentmenu.add_separator()
talentmenu.add_command(label="退出",command=root.quit)
menubar.add_cascade(label="人才组",menu=talentmenu)

root.config(menu=menubar)    # 显示菜单
mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-29 21:01:34 | 显示全部楼层
不知道你想实现什么效果,不过从目前你的代码看,你只是读取了girl.xlsx的地址,并没有指定读取内容存放在什么位置,显示在哪里,不如加上一个文本框,显示内容为读取的名字
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-29 21:10:59 | 显示全部楼层
要说清楚 你的准确需求:
   1. 你是要打开这个Excel文件,然后将内容展示到tk的界面里 ?
   2. 还是 只是通过这个回调函数wj,单独打开xlsx (用默认的Excel软件打开)??
   3. 应该不是 只是打印出来吧?

which one?  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-29 21:15:31 From FishC Mobile | 显示全部楼层
阿奇_o 发表于 2022-10-29 21:10
要说清楚 你的准确需求:
   1. 你是要打开这个Excel文件,然后将内容展示到tk的界面里 ?
   2. 还是  ...

我是想打开这个Excel文件,然后将内容展示到tk的界面里 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-29 21:17:11 From FishC Mobile | 显示全部楼层
lassiter 发表于 2022-10-29 21:01
不知道你想实现什么效果,不过从目前你的代码看,你只是读取了girl.xlsx的地址,并没有指定读取内容存放在 ...

我是要打开这个Excel文件,然后将内容展示到tk的界面里 ,不知道如何写代码 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-29 22:30:34 | 显示全部楼层
dragov 发表于 2022-10-29 21:17
我是要打开这个Excel文件,然后将内容展示到tk的界面里 ,不知道如何写代码 ?


一种办法是:可以用pandas读取xlsx后,然后将数据放到TK的 Treeview 里。至于若要修改单元格,那自己去折腾吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-30 08:25:26 | 显示全部楼层
阿奇_o 发表于 2022-10-29 22:30
一种办法是:可以用pandas读取xlsx后,然后将数据放到TK的 Treeview 里。至于若要修改单元格,那自己去 ...

   如何将 Excel 的数据放到 Treeview 中呢 ?






想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-30 10:31:23 From FishC Mobile | 显示全部楼层
dragov 发表于 2022-10-30 08:25
如何将 Excel 的数据放到 Treeview 中呢 ?

百度一下treeview的用法,不是狠难的说
我电脑上有现成代码,手机发贴,没办法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-30 14:03:45 | 显示全部楼层    本楼为最佳答案   
dragov 发表于 2022-10-30 08:25
如何将 Excel 的数据放到 Treeview 中呢 ?

核心代码
def load():
    tree.delete(*tree.get_children())
    wb=load_workbook(r"2022.xlsx",data_only=True)
    ws=wb.active
    cres=ws["a1:d10"]
    for row in ws.iter_rows(min_row=1,max_row=10,max_col=4):
      i=1
      res=[cell.value for cell in row]
      tree.insert("",i,values=res)
      i+=1
  

btnload=tkinter.Button(root,text="导入数据",command=load)
btnload.place(x=160,y=530,width=100,height=40)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-30 14:12:46 | 显示全部楼层
dragov 发表于 2022-10-30 08:25
如何将 Excel 的数据放到 Treeview 中呢 ?

再来一版 打开文件对话框的
def load():
    tree.delete(*tree.get_children())
    name = filedialog.askopenfilename()
    wb=load_workbook(name,data_only=True)
    ws=wb.active
    cres=ws["a1:d10"]
    for row in ws.iter_rows(min_row=1,max_row=10,max_col=4):
      i=1
      res=[cell.value for cell in row]
      tree.insert("",i,values=res)
      i+=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-30 15:17:10 | 显示全部楼层
wp231957 发表于 2022-10-30 14:12
再来一版 打开文件对话框的

深  表  感  谢

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 21:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表