crossplatform.ru

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


  Ответ в построение таблицы
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
silver47 Дата 18.11.2011, 9:10
  Замысел выполнить реально. Но для этого придется немного поменять стратегию работы программы. Так как мы должны открывать файл уже содержащий данные, а пользователь при его закрытии должен его сохранить, причем под тем же именем. Это вопрос отдельный.

LineEdit нет нужды привязывать к конкретной ячейке Excel'евского листа, его значение можно выводить в произвольное место листа например:
range = StatSheet->querySubObject( "Cells(const QVariant&,const QVariant&)",QVariant(row),QVariant(column));          
range->dynamicCall("SetValue(const QVariant&)", QVariant(lineEdit->text()));

соответственно выведем в строку - row и колонку - column, а их уже можно определять по какой либо логике, необходимой Вам.

Как продолжить вывод со строки, следующей за последней заполненной?
определим строку
QAxObject* cell;
QVariant result;
int lastRow(0);
for(int i = 1; i <= 65535; ++i{
    cell = StatSheet->querySubObject("Cells(QVariant,QVariant)", i, 1);
    result = cell->property("Value");
    if(result.toString().isEmpty()){
        lastRow = i;
        break;
    }
}
delete cell;
// код из головы, возможны ошибки.

В переменно lastRow мы получим значение первой пустой строки. (обратите внимание не только на строку но и на колонку, если у Вас первая колонка всегда или иногда пуста, тогда есть смысл искать по втророй, третьей и так далее.)

UPD: Где-то когда-то видел как работать с экселевскими файлами без самого экселя, за давностью лет потерял (
ArhiZhek Дата 18.11.2011, 8:08
  нет, нет я вовсе и не хочу чтоб за меня прогу накатали... неудачно вопрос поставил :blush2: дело в том, что если я привяжу LineEdit к одной ячейке экселя, то он так и будет за ней закреплен, возможно ли этот LineEdit закреплять за несколькими ячейками, ну вот например получились числа в нескольких LineEdit, из них построилась таблица, посчитали второй раз и вот данные посчитанные из второго строились в экселе под построенной таблицей из первых данных, и таблицы будут разные по наполняемости...
Мой замысел реально ли выполнить?
А за пример спасибо огромное!!!
silver47 Дата 17.11.2011, 18:22
  2 ArhiZhek что именно не получается? Как записать чего-то в эксель пример давал. Чтобы проверить выбран ли QCheckBox, достаточно
if(QCheckBox::isChecked)
. Начните с более простого форматирования листа, без добавления и прочего. По шагам:

1 Просмотреть выданный мною пример и попробовать вывести значения в другие части листа, меняя позицию курсора.
2 Проверяя, выбран ли чекбок, перенести значение на лист.
3 Поиграться с форматированием и формулами на листе, подумать как упростить рассчет, в конечном итоге, добитьтся необходимого внешнего вида выводимого отчета.
3а Научиться определять последнюю заполненую строку листа. И начинать заполнять с нее. В том же факе сказано не только как ЗАПИСАТЬ данные на лист, но и как ПРОЧИТАТЬ их.

В общем и целом: форум для помощи по вопросам, с которыми люди сталкиваются изучая программирование, за Вас здесь программу никто не напишет. Если Вам нужна программа, то есть ресурсы фрилансеров. Если Вы хотите научиться писать программы, то попробуйте последовательно выполнить эти 4 незамысловатых пункта. В каждом конкретном вопросе, если что не получается, обращайтесь поможем.
PAFOS Дата 17.11.2011, 14:46
  Где-то в вики была статья про то как использовать Excel в Qt. Ищи)
ArhiZhek Дата 16.11.2011, 17:55
  Подскажите пожалуйста :cray:
ArhiZhek Дата 15.11.2011, 16:05
  из этой программы нужно построить таблицы в excel по посчитанным данным (в правой части программы)
Прикрепленное изображение

при этом когда checkbox активный, то это значение и переходит в таблицу, а не активные - не переходят в таблицу
должна получиться такая таблица
Прикрепленное изображение

эта таблица должна сохраняться в excel и под ней появляться следующая таблица, когда будут посчитаны новые значения
также выделенное красным цветом поле в таблице изменяется в соответствии с выделенными checkbox`ами, т.е. сколько активных checkbox столько и будет выводить значений
в итоге нужно чтоб выводил вот такую таблицу
Прикрепленное изображение


Кто-то знает как это можно реализовать?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 11:13