Создание GUI с PyQt5 для взаимодействия с файлом Excel, проблемы с загрузкой имен листов и списка тем в комбинированный список - PullRequest
0 голосов
/ 20 ноября 2018

Цель приложения: открыть файл Excel, позволить пользователю выбрать лист, сгенерировать список предметов для поиска, вернуть конкретные ячейки из этой строки

По сути, отдел, в котором я работаю, имеет результаты Excelчто у них есть, но я не знаю, как их использовать, и я пытаюсь создать простое приложение, которое будет возвращать нужные данные.Я новичок в программировании, и в последнее время я пробовал много способов создать это приложение.Я остановился на использовании PyQt5 для создания графического интерфейса и панд для чтения файла Excel.

Сейчас я пытаюсь использовать комбинированные списки, чтобы позволить пользователю выбрать вкладку и тему, но я не могу 't получить информацию из открытого файла в выпадающие списки.

В настоящее время код для моих ящиков выглядит следующим образом:

class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super().__init__()
        self.title = 'NU Forceplate Data'
        self.setWindowIcon(QIcon('image.png'))
        QApplication.setStyle(QStyleFactory.create('Fusion'))
        self.initUI()
        # ...

    def initUI(self):
        # ...
        self.sheetsBox()
        # ...

    def sheetsBox(self):
        self.sheetselectionbox = QComboBox(self)
        sheetsBox.move(50, 75)
        sheetsBox.activated[str].connect(self.sheets) #I still don't understand this

    def sheets(self, text):
        self.sheetselection.setText(text) #or this
    #if I don't pass on this, the kernel doesn't crash but the box won't show up

    def file_open(self): 
      import_excel_name, _ = QFileDialog.getOpenFileName(self, "Please select file:")

      if import_excel_name:
         with pd.ExcelFile(selected_file) as xls:
              sheet_tabnames = xls.sheet_names
              self.sheetselectionbox.clear()
              self.sheetselectionbox.addItems(sheet_tabnames)

    # ...

if __name__ == "__main__":
    app = QApplication(sys.argv)
    mainWin = MainWindow()
    sys.exit( app.exec_() )

Я не могу понять, что положить в листы, поэтому я передал его определение.

Я не уверен, достаточно ли это информации, с радостью предоставлю больше, если это необходимо.Я не уверен, что это даже лучший способ сделать это, поэтому я открыт для любых других предложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...