【问题标题】:tkinter optionmenu looking up excel listtkinter optionmenu 查找 excel 列表
【发布时间】:2017-12-31 22:21:48
【问题描述】:

我有一个可以从代码中的列表查看的选项菜单,但是如果要在外部在 excel 文件中维护该列表怎么办。我将如何查找一个名为....vehicles.xlsx 的excel文件,该列表将在A列中?我会使用熊猫还是python中有一个现有的选项 工作代码如下,但显然我想摆脱列表并将其替换为 excel 查找。

抱歉,如果某处有教程,但我似乎找不到它,而且我对 python 很陌生。

谢谢

self.cars=["car1","car2"] self.installin = tk.OptionMenu(self,self.var,*self.cars).grid(row=4,column=2,sticky=tk.W, padx=8, pady=8)

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    查看我的 Excel 2003,您似乎可以将电子表格保存为 xmltxtcsv 等。

    不确定文本文件的外观,但我会从它开始,因为它可能会为您节省一个库导入(xmlcsv),以防万一。

    编辑:如果不是,请查看 csvs'DictReader,我相信这是最快的解决方案。

    如果您喜欢/喜欢使用 json,您还可以使用 few lines of code 将 csv 转换为 json。

    编辑 2:从 csv 文件中提取第一列可能如下所示:

    import csv
    
    with open('install.csv') as csvfile:
    
        # Generating a DictReader object
        reader=csv.DictReader(csvfile)
    
        # This will contain the values in the 1st column
        first_col=[]
    
        # Assuming the first column is titled 'Ins' and skipping empty cells
        first_col.extend([row['Ins'] for row in reader if row['Ins']])
    

    或者,如果您没有命名列,您可以使用csv.reader。相关部分如下所示:

    reader=csv.reader(csvfile)  # instead of csv.DictReader(csvfile)
    
    first_col=[]
    
    first_col.extend([row[0] for row in reader if len(row) and row[0]])
    

    【讨论】:

    • 抱歉,刚接触这个,还不明白。我在 open('install.csv') as csvfile 中添加了以下内容: self.reader = csv.DictReader(csvfile) for row in self.reader: read(row['Ins']) self.installin = tk. OptionMenu(self,self.var,*self.reader) 我知道错了,教程中的例子展示了如何打印,但这不是我需要的,有读取功能吗?
    • 抱歉耽搁了,没有机会尝试,但我仍然无法让它工作。我如何将它应用于 optionmenu tkinter 对象?
    • 我们所做的是获取 csv 文件第一列中的项目列表。在您的情况下,只需使用 self.cars 而不是 first_col,然后像以前一样继续。
    猜你喜欢
    • 2019-07-04
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 2013-08-15
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    相关资源
    最近更新 更多