Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt] запустить .exe - EXCEL запустить 
:(
    Опции темы
Mal Hack
Дата 8.3.2009, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Нужно запсутить из Qt Excel и передать ему на отображение CSV файл... Пока не получается первое.
Пытаюсь заюзать QProcess: start & execute, но глухо, т.к. он пытается выполнить команды из cmd-shell, а следовательно 
Код

QProcess *prc = new QProcess;
    //QProcess::execute("excel.exe");
    prc->execute("C:/Program Files (x86)/Microsoft Office/Office12/EXCEL.EXE");

QProcess::ProcessError err = prc->error ();

Ничего не запускается. В err - UnknownError.


Благодарю за внимание.
PM ICQ   Вверх
Mal Hack
Дата 8.3.2009, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



А ларчик-то открывался просто. Видать уже переработался smile))
Код

class thExec : public QThread
{
public:
    void execute(QString);
protected:
    void run(void);

    QString cmd;
};

void thExec::run(void)
{
    system(this->cmd.toStdString().c_str());
}

void thExec::execute(QString cmd)
{
    this->cmd = cmd;

    this->start();
}

В функцию execute() объекта созданного от класса thExec, передаем:
Код

threadExec.execute(QString("\"C:/Program Files (x86)/Microsoft Office/Office12/EXCEL.EXE\" " + tblSkya->item(0, 0)->text().trimmed() + ".csv"));


Более рациональные и оптимальные варианты преветствуются.

Спасибо powerfox'у

Это сообщение отредактировал(а) Mal Hack - 8.3.2009, 22:09
PM ICQ   Вверх
SABROG
Дата 9.3.2009, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



У меня все работает так:

Код

    QProcess process(this);
    process.execute(QLatin1String("C:/Program Files/Microsoft Office/OFFICE11/EXCEL.EXE"), QStringList() << QLatin1String("book1.csv"));


При этом book1.csv лежит в папке с exe'шником программы.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Mal Hack
Дата 5.6.2009, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Спасибо за информацию. Сделал несколько по другому, правда.
PM ICQ   Вверх
chesterfielda
Дата 1.9.2009, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 13.7.2009

Репутация: нет
Всего: нет



Добрый день!!!Очень полезная тема оказалась для меня...
Открываю документ Excel так :
Код

    QProcess process(this);
    process.execute(QLatin1String("C:/Program Files/Microsoft Office/OFFICE11/EXCEL.EXE"), QStringList() << QLatin1String("book1.csv"));


Может кто-нить подскажет, как можно при этом открытии вызвать команду в Excel:
Код

 Selection.QueryTable.Refresh BackgroundQuery:=False

Ну или макрос вызвать при открытии сразу
PM MAIL   Вверх
Любитель
Дата 1.9.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Повесить макрос на Workbook_Open. Только это вопрос по MSO уже, а не Qt smile 


--------------------
PM MAIL ICQ Skype   Вверх
SABROG
Дата 1.9.2009, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Вот, полезная ссылка, только стоит понимать, что это может не работать с mingw и не будет работать нигде кроме как в винде.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
mir666
Дата 2.5.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 2.5.2010

Репутация: нет
Всего: нет



привет, а случайно не знает кто нить код, наоборот из CSV файла чтоб инфа поступала в Table Widget
помогите пожалуйста!...
заранее спасибо!...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0653 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.