0 / 0 / 1
Регистрация: 17.04.2010
Сообщений: 105

Формирование отчета LibreOffice Calc

02.01.2015, 06:56. Показов 7733. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Необходимо сформировать отчет в LibreOffice Calc. При этом чтоб формирование отчета было в не основной программы. Подскажите как такое можно реализовать? Можно для этого использовать QtScript или QtPy?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.01.2015, 06:56
Ответы с готовыми решениями:

LibreOffice Calc - диаграммы
Подскажите, пожалуйста. Не могу понять как вместо цифр 1, 2, 3 и т. д. идущих по горизонтальной оси вставить свои значения, например, даты:...

Макросы в LibreOffice Calc
Здравствуйте, вы мой последний шанс ! Задание: Посчитать сумму произведений четных и нечетных столбцов. Моё решение: Function...

Из DBgrid в LibreOffice Calc
Доброго времени суток. пришлось перейти с MS Excel на libreOffice Calc...в связи с етим слетел теперь код и не сохраняет с Delphi в...

6
Автор FAQ
 Аватар для Чистый
2733 / 1429 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
02.01.2015, 20:51
может что-то подобное подойдет https://github.com/f35f22fan/QOds ?

Но если не в программе формировать отчёт то где?
0
0 / 0 / 1
Регистрация: 17.04.2010
Сообщений: 105
03.01.2015, 06:23  [ТС]
Я пишу на qt 4.8. А эта библиотека для qt5. Допустим поменяется шаблон мне придется всю программу перекомпилировать. А я предполагаю сделать используя qtScrpt(или другой способ) куда передал значение и он формирует отчет сам, надо поменять поменял скрипт и программа не надо перекомпилировать.
0
Автор FAQ
 Аватар для Чистый
2733 / 1429 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
03.01.2015, 12:37
Тогда писать надо самому, вряд ли Вы найдете что-то готовое.
0
0 / 0 / 1
Регистрация: 17.04.2010
Сообщений: 105
05.01.2015, 08:54  [ТС]
А может кто нибудь подскажет путную бесплатную библиотеку для считывания odt(LebreOfffice Writer) файлов? На сколько я понял что с помощью QTextDocument нельзя прочитать документ odt или odf.
0
0 / 0 / 1
Регистрация: 17.04.2010
Сообщений: 105
10.01.2015, 16:32  [ТС]
Тут я нашел такую штуку как PySide, как я понял с помощью него можно создавать гибридные приложения(Гибридное приложение). Т.е связь python+qt. В libreoffice есть встроенные интерпретатор python. Также я нашел другую статью(Qt+Pyside+LibreOffice). Подскажите можно ли все это как нибудь связать в одну кучу чтобы было так:
В основной программе создаю подключение к бд, в скрипте используя это же подключение выполнить скрипт например который ищет {DATE_ORDER} и заменят найденное значение на дату заказа(которое взял из бд). Также я знаю что скрипт можно назначить выполнение при открытии. Было бы хорошо если б это все получилось реализовать.
0
0 / 0 / 1
Регистрация: 17.04.2010
Сообщений: 105
20.01.2015, 19:23  [ТС]
Нашел что есть такой формат файла как "Microsoft Excel 2003 xml" это файл имеет расширение xml. Кто может подсказать как можно организовать добавление новых строк по образцу в этот XML файл в найденную позицию.
Написал следуюший код:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//Ищем все ячейки
QDomDocument domDoc;
//
Тут подключение к файлу установка соержимого и д.р операции
//
QDomNodeList ListRow = domDoc.elementsByTagName("Cell");
            for (int i = 0; i < ListRow.count(); ++i) {
                //QDomElement domElement = ListRow.at(i).firstChild();
                QDomNode n = ListRow.at(i).firstChild();
                while (!n.isNull()) {
                    if (n.isElement()) {
                        QDomElement e = n.toElement();
 
                        if(e.text()=="{PARTORDER}"){
//Произвожу добавление клона найденой строки
 
                            QDomNode CloneNode = e.parentNode().parentNode().cloneNode(true);
                            qDebug()<< CloneNode.nodeName();
                            domDoc.insertAfter(CloneNode,e.parentNode().parentNode());
                            domDoc.insertAfter(CloneNode,e.parentNode().parentNode());
                        }
                        if(e.text()=="{PRICE}"){
 
                        }
                    }
                    n = n.nextSibling();
                }
 
            }
        }
//Открываю новый файл для записи
        if( !file1.open( QIODevice::WriteOnly) ){
            qDebug( "Failed to open file for writing." );
            return;
        }
 
        QTextStream stream( &file1 );
        stream << domDoc.toString();
 
        file1.close();
После того как сохранил новых строк не вижу в файле.
Часть файла XML
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<Table ss:DefaultRowHeight="15" ss:StyleID="s62" x:FullRows="1" x:FullColumns="1" ss:ExpandedRowCount="24" ss:ExpandedColumnCount="6">
   <Column ss:StyleID="s62" ss:Width="78.75"/>
   <Column ss:StyleID="s62" ss:Span="3" ss:Width="59.25"/>
   <Row ss:Height="12.75" ss:AutoFitHeight="0">
    <Cell ss:StyleID="s70" ss:MergeAcross="5">
     <Data ss:Type="String">Описание </Data>
    </Cell>
   </Row>
   <Row ss:Height="12.75" ss:AutoFitHeight="0">
    <Cell ss:StyleID="s125">
     <Data ss:Type="String">{PARTORDER}</Data>
    </Cell>
    <Cell ss:StyleID="m39498480" ss:MergeAcross="1"/>
    <Cell ss:StyleID="s126"/>
    <Cell ss:StyleID="s127"/>
    <Cell ss:StyleID="s127"/>
   </Row>
   <Row ss:Height="12.75" ss:AutoFitHeight="0">
    <Cell ss:StyleID="s110" ss:Index="2"/>
    <Cell ss:StyleID="s110"/>
    <Cell ss:StyleID="m39498500" ss:MergeAcross="1">
     <Data ss:Type="String">Всего к оплате:</Data>
    </Cell>
    <Cell ss:StyleID="s127"/>
   </Row>
 
  </Table>
После обработки хочу получить следуюшую часть файла:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<Table ss:DefaultRowHeight="15" ss:StyleID="s62" x:FullRows="1" x:FullColumns="1" ss:ExpandedRowCount="24" ss:ExpandedColumnCount="6">
   <Column ss:StyleID="s62" ss:Width="78.75"/>
   <Column ss:StyleID="s62" ss:Span="3" ss:Width="59.25"/>
   <Row ss:Height="12.75" ss:AutoFitHeight="0">
    <Cell ss:StyleID="s70" ss:MergeAcross="5">
     <Data ss:Type="String">Описание </Data>
    </Cell>
   </Row>
   <Row ss:Height="12.75" ss:AutoFitHeight="0">
    <Cell ss:StyleID="s125">
     <Data ss:Type="String">{PARTORDER}</Data>
    </Cell>
    <Cell ss:StyleID="m39498480" ss:MergeAcross="1"/>
    <Cell ss:StyleID="s126"/>
    <Cell ss:StyleID="s127"/>
    <Cell ss:StyleID="s127"/>
   </Row>
<Row ss:Height="12.75" ss:AutoFitHeight="0">
    <Cell ss:StyleID="s125">
     <Data ss:Type="String">{PARTORDER}</Data>
    </Cell>
    <Cell ss:StyleID="m39498480" ss:MergeAcross="1"/>
    <Cell ss:StyleID="s126"/>
    <Cell ss:StyleID="s127"/>
    <Cell ss:StyleID="s127"/>
   </Row>
<Row ss:Height="12.75" ss:AutoFitHeight="0">
    <Cell ss:StyleID="s125">
     <Data ss:Type="String">{PARTORDER}</Data>
    </Cell>
    <Cell ss:StyleID="m39498480" ss:MergeAcross="1"/>
    <Cell ss:StyleID="s126"/>
    <Cell ss:StyleID="s127"/>
    <Cell ss:StyleID="s127"/>
   </Row>
   <Row ss:Height="12.75" ss:AutoFitHeight="0">
    <Cell ss:StyleID="s110" ss:Index="2"/>
    <Cell ss:StyleID="s110"/>
    <Cell ss:StyleID="m39498500" ss:MergeAcross="1">
     <Data ss:Type="String">Всего к оплате:</Data>
    </Cell>
    <Cell ss:StyleID="s127"/>
   </Row>
 
  </Table>
Подскажите как можно это реализовать добавление новых строк по образцу?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.01.2015, 19:23
Помогаю со студенческими работами здесь

Чтение данных из LibreOffice Calc
Уважаемые специалисты, подскажите пожалуйста, как прочитать данные из LibreOffice Calc Но при условии, что когда мы открываем документ,...

LibreOffice Calc плавная прокрутка
В LibreOffice Calc по умолчанию прокрутка дискретная, по строчкам. Это значит, что мы тянем ползунок прокрутки мышкой, но &quot;положение...

Клик по кнопке -Открытие LibreOffice Calc
Сделал кнопочку. Кликаю раз- появляется документ - 1.ods Кликаю второй- появляется ещё один документ -1.ods// то есть, второй экземпляр...

[LibreOffice Calc] Выделение ячеек, содержащих текст
Как выделить заливкой фона все ячейки, в которых содержится заданный текст? В MS Excel это можно было сделать, настроив параметры в...

Совместимость таблиц Excel, с таблицей Calc LibreOffice
Здравствуйте уважаемые читатели форума! Появился вопрос , который возможно возникал сотни раз :). Была создана таблица в Microsoft Office...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru