tkinter想从excel里提取

笨人想python做一个mbti人格测试,想从excel里面提取题目内容和选项内容到tkinter里,做一个小测试,根据选择的选项不同最终生成不同的结果,怎么从excel里提取呢,


import pandas as pd

# 读取Excel文件
df = pd.read_excel('questions.xlsx')

# 提取题目内容和选项内容
questions = df['题目内容'].tolist()
options = df[['选项1', '选项2', '选项3', '选项4']].values.tolist()

# 打印题目内容和选项内容
for i in range(len(questions)):
    print(f"题目{i+1}: {questions[i]}")
    print(f"选项: {options[i]}")
    print()

# 在Tkinter中使用题目内容和选项内容来创建测试界面
# ...

【以下回答由 GPT 生成】

解决方案:

使用Python的pandas库来处理Excel文件,并使用Tkinter库来构建GUI界面。

以下是解决问题的步骤:

  1. 首先,你需要安装pandas库和openpyxl库。你可以使用以下命令来安装这些库:

python pip install pandas openpyxl

  1. 导入所需的库:

python import pandas as pd from tkinter import *

  1. 创建一个Tkinter应用程序窗口:

python root = Tk()

  1. 使用pandas库的read_excel()函数来读取Excel文件:

python df = pd.read_excel('your_excel_file.xlsx')

  1. 从Excel文件中获取题目和选项的数据:

python questions = df['题目列名称'].tolist() options = df[['选项1列名称', '选项2列名称', '选项3列名称', '选项4列名称']].values.tolist()

  1. 创建Tkinter的标签和按钮来显示题目和选项,并定义按钮的回调函数:

```python def result(option): # 在这里根据选项生成结果 print(f"你选择了选项{option}")

for i, question in enumerate(questions): label = Label(root, text=question) label.pack()

   for j, option in enumerate(options[i]):
       button = Button(root, text=option, command=lambda x=j: result(x+1))
       button.pack()

```

  1. 运行Tkinter应用程序的主循环:

python root.mainloop()

完整的代码如下所示:

import pandas as pd
from tkinter import *

def result(option):
    print(f"你选择了选项{option}")

root = Tk()

df = pd.read_excel('your_excel_file.xlsx')
questions = df['题目列名称'].tolist()
options = df[['选项1列名称', '选项2列名称', '选项3列名称', '选项4列名称']].values.tolist()

for i, question in enumerate(questions):
    label = Label(root, text=question)
    label.pack()

    for j, option in enumerate(options[i]):
        button = Button(root, text=option, command=lambda x=j: result(x+1))
        button.pack()

root.mainloop()

请将代码中的 'your_excel_file.xlsx' 替换为你的实际Excel文件的路径。

这样,你将能够从Excel文件中提取题目和选项内容,并在Tkinter应用程序中显示出来。根据用户选择的不同选项,你可以在result函数中编写相应的代码来生成结果。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^