crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> окраска ячеек в Excel
ArhiZhek
  опции профиля:
сообщение 8.4.2012, 12:58
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 46
Регистрация: 9.10.2011
Пользователь №: 2932

Спасибо сказали: 0 раз(а)




Репутация:   0  


помогите исправить проблему, мне нужно окрасить несколько ячеек в черный цвет, отладка проходит без ошибок, но как только я в запущенной программе открываю файл Excel (сразу же он и должен их окрасить), пишет "приложение остановлено, так как оно получило сигнал от опер. системы"
представлю код на всякий
QAxObject* cell = StatSheet->querySubObject("Cells(QVariant,QVariant)", QVariant(QString("A4:H4")));
QAxObject* interior=cell->querySubObject("Interior"); //ругается на эту строчку
interior->setProperty("Color",QColor("black"));
delete interior;
delete cell;
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 9.4.2012, 5:41
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


а где проверка cell и interior на валидные значения ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ArhiZhek
  опции профиля:
сообщение 9.4.2012, 20:35
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 46
Регистрация: 9.10.2011
Пользователь №: 2932

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 9.4.2012, 6:41) *
а где проверка cell и interior на валидные значения ?

а скажите пожалуйста по подробней, как это можно сделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.4.2012, 7:17
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


хотя бы так

if(QAxObject* cell = StatSheet->querySubObject("Cells(QVariant,QVariant)", QVariant(QString("A4:H4"))))
{
    if(QAxObject* interior=cell->querySubObject("Interior"))
    {
        interior->setProperty("Color",QColor("black"));

        delete interior;
    }
    delete cell;
}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ArhiZhek
  опции профиля:
сообщение 10.4.2012, 10:16
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 46
Регистрация: 9.10.2011
Пользователь №: 2932

Спасибо сказали: 0 раз(а)




Репутация:   0  


все-равно он не окрашивает, на этот раз он открывает файл Excel, но окрашенных ячеек нет, открывает вот с такой ошибкой:

QAxBase: Error calling IDispatch member Cells: Exception thrown by server
Code : 1004
Source :
Description:
Help :
Connect to the exception(int,QString,QString,QString) signal to catch this exception

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

Может быть нужно указать ему, чтоб он отображал окрашенные ячейки?

Сообщение отредактировал ArhiZhek - 10.4.2012, 10:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 10.4.2012, 11:48
Сообщение #6


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата
Error calling IDispatch member Cells: Exception thrown by server

дело , похоже, вовсе не в указателях, а в запросе


поищи описание ошибки по её коду и названию
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 19:36