Job Description:
This project requires the development of program that analyses a Microsoft Office Excel file and lists all the macro functions, and their parameters, that are defined in the file.
Deliverables:
1) A program in the form of a single executable that:
i. Is built using Qt version 4.8.0;
ii. Has a GUI interface that allows the user to browse and select an excel *.xls or *.xlsm file;
iii. Uses the ActiveQt QAxContainer as the interface to excel;
iv. Automatically analysis the excel file to find macro functions;
v. Lists all the macros and all their parameters in a list box on the GUI;
vi. Can interface with Office 2003, 2007 and 2010.
vii. Can run on Windows XP, 7 & Vista.
viii. And is compiled using MinGW for running on a 32 bit windows platform.
2) Commented (in English) C++ source code for the program.
3) Details on any settings within office or windows itself that must be set up to enable the program to run.
4) A detailed method for how each combination of operating system, excel version and file version was tested.
5) The xls or xlsm files, containing macro functions, which were used for testing.
6) A video showing the program running on the desktop of a PC as each test was conducted, including the display of any OS or office settings that are required. In total there are 8 videos required:
i. Windows 7 with Office 2003 and an xls file.
ii. Windows 7 with Office 2007 and an xls file.
iii. Windows 7 with Office 2010 and an xls file.
iv. Windows 7 with Office 2007 and an xlsm file.
v. Windows 7 with Office 2010 and an xlsm file.
vi. Windows XP with Office 2003 and an xls file.
vii. Windows XP with Office 2007 and an xlsm file.
viii. Windows Vista with Office 2010 and an xlsm file.
Applicants are requested to describe past experience with C++, Qt, Excel Automation & ActiveQt (including QAxContainer & dumpcpp tool).
Навыки: Программирование на C++, Excel, Рабочий стол Windows
О клиенте:
( 1 отзыв ) Sydney, Australia
ID проекта: #1555931
Этот документ не является руководством по использованию PySide или PyQt. Он предназначен только для того, чтобы проинструктировать вас о том, как использовать PySide и PyQt с функцией настраиваемой панели задач PyXLL. Вам следует обратитесь к документации по соответствующему пакету, чтобы узнать, как использовать каждый пакет.
И PySide, и PyQt можно установить с помощью pip или conda, например:
> pip install pyside2 # или > пип установить pyqt5 # или > conda установить pyside2 # или > conda установить "pyqt> = 5"
Обычно вам нужно установить только одно или другое, и вы должны установить его с помощью pip или conda. и не оба.
Дополнительную информацию о PySide и PyQt можно найти на веб-сайтах https://wiki.qt.io/Qt_for_Python. и https://www.riverbankcomputing.com/software/pyqt/ соответственно.
Примечание
Поддержка Qt6 была добавлена в PyXLL 5.1 как для PySide6, так и для PyQt6.
Любой из PySide2, PySide6, PyQt5 и PyQt6 можно использовать с PyXLL.
Одним из основных классов в Qt5 является класс QWidget
. Чтобы создать собственный пользовательский интерфейс,
это класс QWidget
В следующем коде показано, как создать простой виджет Qt. Если вы запустите этот код как Python script, то вы увидите отображаемый виджет.
из PySide2 импортировать QtWidgets # или из PyQt5 импортировать QtWidgets импорт системы класс ExampleWidget(QtWidgets.QWidget): защита __init__(сам): супер().__инит__() self.initUI() деф initUI(я): """Инициализируйте макет и дочерние элементы управления для этого виджета.""" # Даем название виджету self.setWindowTitle("Пример виджета Qt") # Создайте объект "Макет", чтобы помочь разместить дочерние элементы управления. # QVBoxLayout размещает элементы управления вертикально. vbox = QtWidgets.QVBoxLayout(я) # Создайте элемент управления QLineEdit и добавьте его в макет self.line_edit = QtWidgets.QLineEdit(я) vbox.addWidget(self.line_edit) # Создайте элемент управления QLabel и добавьте его в макет self.label = QtWidgets.QLabel(я) vbox.addWidget(self.label) # Соединяем событие textChanged с нашим методом onChanged self.line_edit.textChanged.connect(self.onChanged) # Установите макет для этого виджета self.setLayout(vbox) def onChanged (я, текст): """Вызывается при изменении текста QLineEdit""" # Установить текст из элемента управления QLineEdit на элемент управления label self.label.setText (текст) self.label.adjustSize() если __name__ == "__main__": # Создаем приложение Qt приложение = QtWidgets.QApplication(sys.argv) # Создадим наш пример виджета и покажем его виджет = Примервиджета() виджет. показать() # Запустить приложение Qt sys.exit(приложение.exec_())
Когда вы запустите этот код, вы увидите, как отображается наш пример виджета, и когда вы вводите текст в поле редактирования строки метка ниже будет обновлена.
Далее мы посмотрим, как мы можем использовать этот виджет в Excel.
Чтобы отобразить QWidget в Excel с помощью PyXLL, мы используем функцию create_ctp
.
Как и выше, прежде чем мы сможем создать виджет, мы должны убедиться, что приложение QApplication инициализирован. В отличие от приведенного выше скрипта, наша функция может вызываться много раз, поэтому мы не хотим каждый раз создавать новое приложение, поэтому проверяем, уже существует.
Объект QApplication все еще должен существовать, когда мы вызываем create_ctp
. Если оно
вышла за рамки и была выпущена, тогда это вызовет проблемы позже, поэтому всегда
не забудьте сохранить ссылку на него.
Мы можем создать настраиваемую панель задач из разных мест, но обычно это будет из функции ленты или функции меню.
В следующем коде показано, как создать настраиваемую панель задач из меню Excel.
функция, используя ExampleWidget
управления из примера выше.
из pyxll импортировать xl_menu, create_ctp, CTPDockPositionFloating из PySide2 импортировать QtWidgets # или из PyQt5 импортировать QtWidgets @xl_menu("Пример Qt CTP") определение example_qt_ctp(): # Прежде чем мы сможем создать виджет Qt, приложение Qt должно быть инициализировано. # Убедитесь, что мы сохраняем ссылку на это, пока не будет вызван create_ctp. приложение = QtWidgets.QApplication.instance() если приложение отсутствует: приложение = QtWidgets.QApplication([]) # Создайте наш пример виджета Qt из приведенного выше кода виджет = Примервиджета() # Используйте функцию PyXLL create_ctp для создания настраиваемой панели задач. # Аргументы width, height и position необязательны, но для этого # например, мы создадим CTP как плавающий виджет, а не как # по умолчанию он пристыкован справа.create_ctp (виджет, ширина=400, высота=400, position=CTPDockPositionFloating)
Когда мы добавим этот код в PyXLL и перезагрузим, будет доступна новая функция меню «Пример Qt CTP», и когда эта функция меню запускается, ExampleWidget открывается как настраиваемая панель задач в Excel.
В отличие от модального диалогового окна, настраиваемая панель задач не блокирует работу Excel. Его можно перемещать и изменен размер и даже прикреплен к текущему окну Excel точно так же, как и собственный Excel инструменты.
Дополнительные сведения см. в справочнике по API для create_ctp
.
Как партнер Amazon я зарабатываю на соответствующих покупках. Хотите хорошо почитать? Попробуйте FreeBSD Mastery: Jails (IT Mastery Book 15)Все время: UTC | |||||
Самая безопасная процедура: сменить пароль FreshPorts. Все, что вы установили до пятницы, 24 марта 2023 г., 09:49:20 UTC, должно быть изменено. Вы можете прочитать больше здесь: Исправлены проблемы с внедрением SQL и исправления кода FreshSource. Извините за дополнительную работу для вас. | |||||
Исправлены все известные проблемы с SQL-инъекциями. Нет никаких доказательств того, что его использовали. Это не значит, что этого не было. Пожалуйста, измените свой пароль. | |||||
Количество найденных коммитов: 2
|