C# и Open office не выполняется макрос на странице

Автор Nickolay79, 25 июня 2018, 11:34

0 Пользователи и 1 гость просматривают эту тему.

Nickolay79

Добрый день, форумчане! Столкнулся с такой проблемой.
Имеется база данных  ее записи обрабатываю в c#, вывожу на экран через datagridview. Необходимо распечатать эти данные. Сделал шаблон необходимого документа. В него добавляю построчно данные. Сохраняю как другой документ... В документе есть макрос  который считает кол - во, по определенным критериям. Вот когда открываю сохраненный документ с под с# в ячейках подсчета значений макросом выдается "Значение#" (макрос получается не выполняется). Когда открываю документ с папки непосредственно, тогда все работает как надо.
Что делаю не так? как запустить с под C# выполнение макроса. Благодарю за ответ.

bigor

Если документ заполняется из проги на c#, так реализовать подсчет количества в ней
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

Nickolay79

Спасибо. Сам про это думал и так сделал, на первое время. Но вот хотелось бы и разобраться как открыть докмуент опенофиса с выполнением макроса (на будущее может пригодиться ;-))

JohnSUN

Открываешь документ с помощью .loadComponentFromURL()?
У него четыре параметра. Последний - массив структур типа com.sun.star.beans.PropertyValue
Чтобы управлять макросами открываемого документа, нужно в этот массив вставить элемент с именем "MacroExecutionMode" и с нужным
значением из этого перечисления
Что-то вроде такого:
Dim oProp(5) As New com.sun.star.beans.PropertyValue
...
oProp(1).Name = "MacroExecutionMode"
oProp(1).Value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN
...
oDoc = StarDesktop.loadComponentFromURL("file:///D:/path/to/my/file.ods", "_blank", 0, oProp())
(Разумеется, в "пошарпанном Си" это будет записано немного иначе)
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Nickolay79

спасибо большое. попробую на досуге поиграться. пока решил сформировать подсчет sql и выводить все в пдф