crossplatform.ru

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

> Excel не получается прочитать ячейку
LEO
  опции профиля:
сообщение 27.9.2010, 12:27
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 8.3.2009
Пользователь №: 595

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




Репутация:   0  


Всем доброго времени суток. Столкнулся с проблемой: запись в таблицу происходит замечательно, а вот прочитать не удается. wiki уже смотрел + кучу всего облазил. ниже привожу код, с права значения взяты с дебагера. Заранее благодарен.
Раскрывающийся текст
    QAxObject* excel = new QAxObject( "Excel.Application", this );
    excel->dynamicCall( "SetVisible(bool)", true );
    QAxObject *workBooks = excel->querySubObject("Workbooks");
    QAxObject *workBook = workBooks->querySubObject("Open(const QString&)", this->fileName);
    QAxObject *sheets = workBook->querySubObject("Sheets");
    QAxObject *currentSheet = sheets->querySubObject("Item(const QVariant&)", QVariant(this->sheetName));
    currentSheet->dynamicCall("Select()");
    QAxObject* cell = currentSheet->querySubObject("Range(C5)");
    cell->dynamicCall("Select()");
    cell->dynamicCall("SetValue(const QVariant&)", QVariant("TEST"));
//До этого момента все идет как по маслу
    QString r1 = cell->property("Value").toString();     // r1 = ""
    r1 = cell->dynamicCall("Value").toString();           // r1 = ""
    r1 = cell->property("Value()").toString();              // r1 = ""
    r1 = cell->dynamicCall("Value()").toString();         // r1 = ""
    QVariant r2 = cell->property("Value");       // r2->data = invalid
    r2 = cell->dynamicCall("Value");               // r2 = invalid
    r2 = cell->property("Value()");                  // r2 = invalid
    r2 = cell->dynamicCall("Value()");             // r2 = invalid
    r2 = cell->property("Value").toString();            // r2 = ""
    r2 = cell->dynamicCall("Value").toString();       // r2 = ""
    r2 = cell->property("Value()").toString();         // r2 = ""
    r2 = cell->dynamicCall("Value()").toString();    // r2 = ""
Офис 2010, QT 4.7
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
LEO
  опции профиля:
сообщение 27.9.2010, 15:59
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 8.3.2009
Пользователь №: 595

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




Репутация:   0  


Проблема все таки остается, так как для числовых значений результат получаем 0 и ошибку:
Цитата
QAxBase: Error calling IDispatch member Text: Exception thrown by server
Code : 1004
Source : Microsoft Excel
Description: ?????????? ???????? ???????? Text ?????? Characters
Help : xlmain11.chm
Connect to the exception(int,QString,QString,QString) signal to catch this exception
Подскажите пожалуйста куда копать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 15.1.2025, 15:34