Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 17, 2015 14:16:11

anatoly1712
Зарегистрирован: 2015-01-27
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4 Excel Workbook

1. Создал контейнер
Workbook = QAxContainer.QAxWidget(…)
2. Установил в нем excel.workbook контролл
Workbook.setControl(…)
При этом как фоновый процесс(Com server) запустился EXCEL.EXE
и он не завершается после выхода из Python QT приложения

? как выгрузить связанный EXCEL.EXE

Офлайн

#2 Апрель 21, 2015 09:53:11

anatoly1712
Зарегистрирован: 2015-01-27
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4 Excel Workbook

ау python-гуру

Офлайн

#3 Апрель 21, 2015 10:23:28

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

PyQT4 Excel Workbook

Попробуйте Workbook = None



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано PooH (Апрель 21, 2015 10:23:41)

Офлайн

#4 Апрель 21, 2015 11:39:59

anatoly1712
Зарегистрирован: 2015-01-27
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4 Excel Workbook


Workbook.Close Workbook= None
не помогает

Офлайн

#5 Апрель 21, 2015 11:47:14

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

PyQT4 Excel Workbook

Остается где-то ссылка на COM-объект. Если кинете минимальный пример воспроизводящий проблему, то покопаю



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#6 Апрель 21, 2015 12:06:35

anatoly1712
Зарегистрирован: 2015-01-27
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4 Excel Workbook

Завтра скину(если вы не против).Сейчас занят другим

Офлайн

#7 Апрель 22, 2015 09:49:39

anatoly1712
Зарегистрирован: 2015-01-27
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4 Excel Workbook

# coding=utf-8
import sys
from PyQt4 import QtGui,QtCore, uic

import datetime,time

class TestForm(QtGui.QMainWindow):

def __init__(self, parent=None):
# Запускаем родительский конструктор
super(TestForm, self).__init__(parent)
# Загружаем форму “на лету”
self.ui = uic.loadUi(“mainwindow.ui”,self)
self.ui.axWidget.setControl(“{00020820-0000-0000-C000-000000000046}”)



def closeEvent(self, event):
reply = QtGui.QMessageBox.question(self, ‘Message’,
“Желаете завершить работу ?”, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)

if reply == QtGui.QMessageBox.Yes:
self.ui.axWidget.dynamicCall('Close(bool)',False)
self.ui.axWidget.dynamicCall('Close()')
self.ui.axWidget = None

event.accept()
else:
event.ignore()




if __name__ == “__main__”:
###QtGui.QApplication.setStyle(QtGui.QStyleFactory.create('CDE'))
app = QtGui.QApplication(sys.argv)
myapp = TestForm()
myapp.show()
sys.exit(app.exec_())

Прикреплённый файлы:
attachment mainwindow.ui (4,3 KБ)

Офлайн

#8 Апрель 22, 2015 17:20:05

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

PyQT4 Excel Workbook

Срочно в командировку уезжаю, посмотрю не раньше понедельника



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#9 Апрель 22, 2015 17:36:20

anatoly1712
Зарегистрирован: 2015-01-27
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQT4 Excel Workbook

подожду

Офлайн

#10 Апрель 27, 2015 14:48:33

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

PyQT4 Excel Workbook

Почему не закрывается я вроде понял, но до работающего кода пока не дошел, слишком уж давно с этим не работал. Насколько я понимаю, когда вы создаете 00020820-0000-0000-C000-000000000046 - это Worksheet в екселе, автоматом создаются Worbook и Application. Надо видимо до них добраться и закрыть.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version