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

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

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

Привет. Необходимо сформировать отчет в LibreOffice Calc. При этом чтоб формирование отчета было в не основной программы. Подскажите как такое можно реализовать? Можно для этого использовать QtScript или QtPy?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.01.2015, 06:56
Ответы с готовыми решениями:

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

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

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

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

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

Но если не в программе формировать отчёт то где?
0
0 / 0 / 1
Регистрация: 17.04.2010
Сообщений: 100
03.01.2015, 06:23  [ТС] 3
Я пишу на qt 4.8. А эта библиотека для qt5. Допустим поменяется шаблон мне придется всю программу перекомпилировать. А я предполагаю сделать используя qtScrpt(или другой способ) куда передал значение и он формирует отчет сам, надо поменять поменял скрипт и программа не надо перекомпилировать.
0
Автор FAQ
2731 / 1427 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
03.01.2015, 12:37 4
Тогда писать надо самому, вряд ли Вы найдете что-то готовое.
0
0 / 0 / 1
Регистрация: 17.04.2010
Сообщений: 100
05.01.2015, 08:54  [ТС] 5
А может кто нибудь подскажет путную бесплатную библиотеку для считывания odt(LebreOfffice Writer) файлов? На сколько я понял что с помощью QTextDocument нельзя прочитать документ odt или odf.
0
0 / 0 / 1
Регистрация: 17.04.2010
Сообщений: 100
10.01.2015, 16:32  [ТС] 6
Тут я нашел такую штуку как PySide, как я понял с помощью него можно создавать гибридные приложения(Гибридное приложение). Т.е связь python+qt. В libreoffice есть встроенные интерпретатор python. Также я нашел другую статью(Qt+Pyside+LibreOffice). Подскажите можно ли все это как нибудь связать в одну кучу чтобы было так:
В основной программе создаю подключение к бд, в скрипте используя это же подключение выполнить скрипт например который ищет {DATE_ORDER} и заменят найденное значение на дату заказа(которое взял из бд). Также я знаю что скрипт можно назначить выполнение при открытии. Было бы хорошо если б это все получилось реализовать.
0
0 / 0 / 1
Регистрация: 17.04.2010
Сообщений: 100
20.01.2015, 19:23  [ТС] 7
Нашел что есть такой формат файла как "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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2015, 19:23
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru