8-900-374-94-44
[email protected]
Slide Image
Меню

Qt excel: Handling Microsoft Excel file format

C++ Excel Automation Project using Qt & ActiveQt

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 — PyXLL User Guide Они есть очень похожи, но имеют разные лицензии, поэтому какую из них вы выберете, зависит от вашего собственное предпочтение.

Оба одинаково хорошо работают с PyXLL.

Этот документ не является руководством по использованию 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.

Создание виджета Qt

Одним из основных классов в Qt5 является класс QWidget . Чтобы создать собственный пользовательский интерфейс, это класс QWidget

, который вы будете использовать, и это то, что PyXLL встроит в Excel как настраиваемая панель задач.

В следующем коде показано, как создать простой виджет 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.

Создание пользовательской панели задач из виджета Qt

Чтобы отобразить 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 .

Библиотека чтения/записи файлов Excel с использованием Qt

Как партнер Amazon я зарабатываю на соответствующих покупках.
Хотите хорошо почитать? Попробуйте FreeBSD Mastery: Jails (IT Mastery Book 15)Все время: UTC
Самая безопасная процедура: сменить пароль FreshPorts. Все, что вы установили до пятницы, 24 марта 2023 г., 09:49:20 UTC, должно быть изменено. Вы можете прочитать больше здесь: Исправлены проблемы с внедрением SQL и исправления кода FreshSource. Извините за дополнительную работу для вас.
Исправлены все известные проблемы с SQL-инъекциями. Нет никаких доказательств того, что его использовали. Это не значит, что этого не было. Пожалуйста, измените свой пароль.
Детали порта
qxlsx Библиотека чтения/записи файлов Excel с использованием Qt
1.4.4 devel =0 Версия этого порта присутствует в последней квартальной ветке.
Сопровождающий: [email protected]
Добавлен порт: 2022-10-05 06:54:22
Последнее обновление: 2022-10-07 02:35:34
Хэш фиксации: 614b81b
Лицензия: MIT
Описание:
QXlsx — это библиотека для чтения и записи файлов Microsoft Excel (*. xlsx). Поскольку QtXlsx больше не поддерживается с 2014 года, новый проект создан на его основе в 2017 году.
     ¦ ¦ ¦ ¦
pkg-plist: как получено через: make generate-plist
Линии зависимостей :
  • qxlsx>0:devel/qxlsx
Чтобы установить порт:
cd /usr/ports/devel/qxlsx/ && make install clean package
0 Для запуска добавьте один из них команды:
  • pkg install devel/qxlsx
  • pkg install qxlsx
ПРИМЕЧАНИЕ. Если у этого пакета несколько разновидностей (см. ниже), используйте одну из них вместо имени, указанного выше.
PKGNAME: qxlsx
Ароматы: для этого порта нет информации о вкусах.
distinfo:
TIMESTAMP = 1658513489 SHA256 (QtExcel-QXlsx-v1.4.4_GH0.tar.gz) = 5c6f7117000c7559d6557d00a2f7b836bee670f9bc16309a72bc23aaedf994d9 Размер (qtexcel-qxlsx-v1. 4.4_gh0.tar.gz) = 4703732

Пакеты (TimeStams во всплывающих окне UTC):
. обязательные и стандартные зависимости. Необязательные зависимости не рассматриваются.
Зависимости сборки:
  1. cmake : devel/cmake-core
  2. ниндзя : devel/ninja
  3. qt5-buildtools>=5.15 : devel/qt5-buildtools
  4. qt5-qmake>=5.15 : devel/qt5-14qmake
Зависимости библиотеки:
  1. libQt5Core.so: devel/qt5-core
  2. libQt5Gui.so: x11-toolkits/qt5-gui
Этот порт требуется для:
для библиотек
  1. астро/стеллариум

Опции конфигурации :
Нет параметров для настройки
Название параметров :
devel_qxlsx
ИСПОЛЬЗОВАНИЕ:
cmake Qt:5
FreshPorts не удалось извлечь/найти сообщение pkg
Основные сайты:

Количество найденных коммитов: 2

История коммитов — (может быть неполной: подробные сведения см.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *