鱼C论坛

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

[已解决]Tkinter 如何打开 Excel

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

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

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

x


程 序 运 行 后 显 示 的 “人才组” 下 拉 菜 单 中,欲 要 点 击 “文件” (文件在 e:/Python/girl.xlsx), 怎 么 写 代 码 呀 ?

  1. from tkinter import *
  2. import pandas as pd
  3. root = Tk()
  4. root.title("个人娱乐计算机管理系统")
  5. root.config(background="beige")
  6. root.iconbitmap("e:/Python/11.ico")
  7. root.geometry("600x200+850+200")

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

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

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

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

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

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

  12. btnload=tkinter.Button(root,text="导入数据",command=load)
  13. btnload.place(x=160,y=530,width=100,height=40)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  2. name = fd.askopenfilename()
  3. print(name)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

按照您的提示,我修改了代码,不行的 ......

  1. from tkinter import *
  2. import pandas as pd
  3. from tkinter import filedialog
  4. root = Tk()
  5. root.title("个人娱乐计算机管理系统")
  6. root.config(background="beige")
  7. root.iconbitmap("e:/Python/11.ico")
  8. root.geometry("600x200+850+200")

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

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

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

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

  25. root.config(menu=menubar)    # 显示菜单
  26. mainloop()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

which one?  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我是想打开这个Excel文件,然后将内容展示到tk的界面里 。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我是要打开这个Excel文件,然后将内容展示到tk的界面里 ,不知道如何写代码 ?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


一种办法是:可以用pandas读取xlsx后,然后将数据放到TK的 Treeview 里。至于若要修改单元格,那自己去折腾吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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






小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

百度一下treeview的用法,不是狠难的说
我电脑上有现成代码,手机发贴,没办法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

  12. btnload=tkinter.Button(root,text="导入数据",command=load)
  13. btnload.place(x=160,y=530,width=100,height=40)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

再来一版 打开文件对话框的
  1. def load():
  2.     tree.delete(*tree.get_children())
  3.     name = filedialog.askopenfilename()
  4.     wb=load_workbook(name,data_only=True)
  5.     ws=wb.active
  6.     cres=ws["a1:d10"]
  7.     for row in ws.iter_rows(min_row=1,max_row=10,max_col=4):
  8.       i=1
  9.       res=[cell.value for cell in row]
  10.       tree.insert("",i,values=res)
  11.       i+=1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

深  表  感  谢

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 03:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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