Выбор значений в строках Excel В зависимости от выбора флажка в графическом интерфейсе с использованием Python Tkinter - PullRequest
0 голосов
/ 12 мая 2018

У меня Excel как ниже

|---------------------|------------------|
|      Heading 1      |     Heading 2    |
|---------------------|------------------|
|       Row1          |    Value 1       |
|---------------------|------------------|
|       Row2          |    Value 2       |
|---------------------|------------------|

Я читаю из Excel и показываю значения заголовка 1 в графическом интерфейсе

My GUI

Когда я нажимаю кнопку «Отправить», мне нужно прочитать значение / текст CheckBox в зависимости от выбора CheckBox и Создать XML, используя Excel только для выбранных значений

Проблема в том, как я могу выбрать только значения в Excel, в зависимости от выбора флажка. (Но я знаю, как определить, какой флажок установлен). Но как относиться к Excel, я сталкиваюсь с проблемой

Примечание: я знаю, как создавать XML из Excel Я знаю, как определить, когда нажать кнопку «Отправить»

Код GUI:

Config.Py

import tkinter as tk
import xlrd
import GetValueFromExcel
from GetValueFromExcel import ExcelValue
from array import array
from tkinter import *
from tkinter import ttk, Button
from tkinter import *

root = Tk()

class UICreation():
    def __init__(self):
        print ("I m in __init__")
        self.tabControl = ttk.Notebook(root)
        self.tab1 = ttk.Frame(self.tabControl)
        self.tab2 = ttk.Frame(self.tabControl)

    def tabcreation(self):
        print ("I M in Tab Creation")
        self.tabControl.add(self.tab1 , text="Tab1")
        #self.tabControl(self.tab1, text= t)
        ##self.tabControl(self.tab1, )
        self.tabControl.add(self.tab2, text="Tab2")
        self.tabControl.grid()

    def checkbox(self):
        print ("I M in checkBox")
        checkBox1 = Checkbutton(self.tab1, text=str(t[0]))
        checkBox2 = Checkbutton(self.tab1, text=str(t[1]))
        Checkbutton()
        checkBox1.grid()
        checkBox2.grid()

    def button(self):
        button = Button(self.tab1 , text="Submit", command=self.OnButtonClick)
        button.grid()

    def OnButtonClick(self):
        print ("I am Working")

if __name__ == '__main__':
    ui = UICreation()
    ev = GetValueFromExcel.ExcelValue()
    ev.readExcelValue()
    t = ev.readExcelValue()
    print(t)
    ui.tabcreation()
    ui.checkbox()
    ui.button()
    #ev = readExcelValue()
    root.mainloop()

GetValueFromExcel.py

import xlrd

class ExcelValue():


    def __init__(self):
        self.wb=xlrd.open_workbook(r"C:\<FilePath>\Filename.xlsx")
       #self.ws=self.wb.sheet_by_name("Sheet1")
        for sheet in self.wb.sheets():
            self.number_of_rows = sheet.nrows
            self.number_of_columns = sheet.ncols

    def readExcelValue(self):
        result_data = []
        row_data = []
        for sheet in self.wb.sheets():
            for curr_row in range(1, self.number_of_rows, 1):
                #for curr_col in range(0, self.number_of_columns , 1):
                    #data = sheet.cell_value(curr_row, curr_col)  # Read the data in the current cell
                    data = sheet.cell_value(curr_row, 0)
                #print(data)
                    row_data.append(data)
                    result_data.append(row_data)
        return result_data[1]

1 Ответ

0 голосов
/ 12 мая 2018

Вы можете передать значение Checkbutton следующим образом:

def checkbox(self):
    print ("I M in checkBox")
    checkBox1 = Checkbutton(self.tab1, text=str(t.keys()[0]), variable=t.values()[0])
    checkBox2 = Checkbutton(self.tab1, text=str(t.keys()[1]), variable=t.values()[1])
    Checkbutton()
    checkBox1.grid()
    checkBox2.grid()

и вы должны изменить readExcelValue, как показано ниже:

def readExcelValue(self):
    result_data = {}
    for sheet in self.wb.sheets():
        for curr_row in range(1, self.number_of_rows, 1):
                data = sheet.cell_value(curr_row, 0)
                value = sheet.cell_value(curr_row, 1)
                result_data[data] = value
    return result_data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...