Russian Qt Forum
Ноябрь 01, 2024, 06:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как оптимизировать код?  (Прочитано 3828 раз)
CJ1
Гость
« : Октябрь 04, 2012, 12:03 »

        for (int i=startRow; i < table->rowCount(); i++){
            for (int j=StartColumn; j < table->columnCount(); j++){
                // получение указателя на ячейку [row][col] ((!)нумерация с единицы)
                int i1,j1;
                if (startRow==0) i1 = i+1; else i1 =i;
                if (StartColumn==0) j1 = j+1; else j1 =j;
                QAxObject* cell = worksheet->querySubObject("Cells(QVariant,QVariant)", i1, j1);
                if( !cell ) {
                    QMessageBox::information(0,"Ошибка"," worksheet->querySubObject");
                    return;
                }
                QString data = table->item(i,j)->text();
                // вставка значения переменной data (любой тип, приводимый к QVariant) в полученную ячейку
                cell->setProperty("Value", QVariant(data));
                // освобождение памяти
                delete cell;

            }
        }
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Октябрь 04, 2012, 12:15 »

Код
C++ (Qt)
for (int i=startRow, rowCount = table->rowCount(); i < rowCount; ++i){
           for (int j=StartColumn, columnCount = table->columnCount(); j < columnCount; ++j){
               QAxObject *cell = worksheet->querySubObject("Cells(QVariant,QVariant)", i + 1, j + 1);
               if( !cell ) {
                   QMessageBox::information(0, "Error"," worksheet->querySubObject");
                   return;
               }
               const QVariant data = table->item(i, j)->text();
               cell->setProperty("Value", data);
           }
       }
 
Цитировать
The returned QAxObject is a child of this object (which is either of type QAxObject or QAxWidget), and is deleted when this object is deleted.
« Последнее редактирование: Октябрь 04, 2012, 12:18 от Пантер » Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
CJ1
Гость
« Ответ #2 : Октябрь 04, 2012, 12:49 »

Все удаляется.

Надо чтото вроде этого


Код
C++ (Qt)
COleSafeArray *CExcelWorksheet::SelectSafeArray(short row, short col, short crow, short ccol)
{
if(col>256) return NULL;
CoordToCell(row,col,lt);
CoordToCell(crow,ccol,rb);
CRange cRange=GetRange(row,col);
VARIANT ret=cRange.get_Value(covOptional);
COleSafeArray *array=new COleSafeArray(ret);
cRange.ReleaseDispatch();
return array;
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.088 секунд. Запросов: 22.