Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2015, 20:51   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию Libre Office. com.sun.star.script. Как скормить оффису скрипт?

Всем доброго. Не нашел подходящей темы, поэтому пишу сюда.
Если кто хорошо умеет работать с Либрой, подскажите, как из другой программы написанной на Си или Делфи или еще каком ЯВУ заставить Либру выполнить некий скрипт, передаваемый ей строкой?
Вроде как есть такое: http://www.openoffice.org/api/docs/c...module-ix.html
Но я не могу понять как эту информацию применить на деле.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.08.2015, 16:19   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

В официальной справке нет таких данных. Можно вогнать офис в какой-то специальный режим и дальше работать с его API. Дальше из командной строки всяка фигня, типа запуск без заставки, быстрый старт и т.д.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.08.2015, 17:49   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Йех... Ладно. Если найду способ отпишусь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.08.2015, 19:34   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Может это для макросов самого офиса?

А так весьма похоже на COM...
waleri вне форума Ответить с цитированием
Старый 21.08.2015, 19:42   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А разве 1 ссылка в гугле по "Libre Office API" это не то, что нужно? http://api.libreoffice.org/

Я только не понял что такое "выполнить некий скрипт, передаваемый ей строкой".
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.08.2015, 20:15   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
А так весьма похоже на COM...
Та в том то и дело, что это и есть СОМ модель. И я ее сейчас к своему ЯВУ прикрутил, и удачно использую, только вот есть некоторые моменты, которые хотелось бы освоить для большей гибкости.
Цитата:
А разве 1 ссылка в гугле по "Libre Office API" это не то, что нужно?
А я откуда пришел?
Цитата:
что такое "выполнить некий скрипт, передаваемый ей строкой".
М.м.м... Грубо говоря: Я ищу некую волшебную функцию, которум можно было бы вызывать так:
Код:
Libre.Script.Run('
 sub a
  msgbox ololo
 end sub
')
где Libre - некий обьект СОМ модели оффиса, у которого есть метод, позволяющий выполнить некий код, как будто я написал макрос для документа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.08.2015, 16:04   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Нашел книгу Андрея Питоняк (Andrew Pitonyak) без названия. Мельком полистал - там описание действий со скриптами в Libre, много рецептов (типа как вывести текст в статусной строке и т.д.). Возможно там есть что-то достойное. На английском языке.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 23.08.2015, 16:32   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Спасибо. На рутреккере есть вроде перевод. Уже качаю. Если найду решение обязательно выложу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.08.2015, 08:37   #9
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

я на си# и си ++ и на vb использовал com объекты подключал эти com объекты для использование эксцеля


добавить так


только microsoft.csharp не нужно подключать
вот пример кода создающего документ и пару графиков
Код:
 private void exeportinexcel(IList   <elMesurement> col)
        {
            Excel.Application oApp = new Excel.Application();
            Excel.Workbook oBook;
            Excel.Worksheet oSheet;
            oBook = oApp.Workbooks.Add();
            oSheet = (Excel.Worksheet) oBook.Worksheets.get_Item(1);
            DateTime time = col[0].time;
            oSheet.Cells[1, 1] = "время сек";
            oSheet.Cells[1, 2] = "скорость м/с";
            oSheet.Cells[1, 3] = "сила Н";
            oSheet.Cells[1, 4] = "частота вращения ГЦ";

            oSheet.Cells[2, 1] = time.Hour + ":" + time.Minute + ":" + time.Second;
            oSheet.Cells[2, 2] = col[0].speed;
            oSheet.Cells[2, 3] = col[0].force;
            oSheet.Cells[2, 4] = col[0].frotate;
            for(int i =3;i<=col.Count-1 ; i++)
            {
                oSheet.Cells[i, 1] = (col[i-2].time - time).TotalSeconds;
                oSheet.Cells[i, 2] = col[i-2].speed;
                oSheet.Cells[i, 3] = col[i - 2].force;
                oSheet.Cells[i, 4] = col[i - 2].frotate;
            }
            oSheet.Shapes.AddChart();
            oSheet.Shapes.AddChart();
            Excel.Chart  chart = oSheet.ChartObjects(1).Chart;
            chart.ChartType = Excel.XlChartType.xlXYScatterLinesNoMarkers;
            while (chart.SeriesCollection().Count!=0)
                chart.SeriesCollection(1).Delete();
            chart.SeriesCollection().NewSeries();
            chart.SeriesCollection(1).XValues = "=Лист1!$A$3:$A$"+col.Count ;
            chart.SeriesCollection(1).Values = "=Лист1!$B$3:$B$" + col.Count;
            chart.SeriesCollection(1).Name = "=\"скорость\"";
            oSheet.ChartObjects(2).top = 0;
            chart = oSheet.ChartObjects(2).Chart;
            chart.ChartType = Excel.XlChartType.xlLine;
            chart.ChartType = Excel.XlChartType.xlXYScatterLinesNoMarkers;
            while (chart.SeriesCollection().Count != 0)
                chart.SeriesCollection(1).Delete();
            chart.SeriesCollection().NewSeries();
            chart.SeriesCollection(1).XValues = "=Лист1!$A$3:$A$" + col.Count;
            chart.SeriesCollection(1).Values = "=Лист1!$C$3:$C$" + col.Count ;
            chart.SeriesCollection(1).Name = "=\"сила\"";
            oSheet.ChartObjects(1).top = 0;
            oSheet.ChartObjects(2).top = 220;
            if (this.сохранятьВФайлToolStripMenuItem.Checked)
            {
                Regex reg = new Regex("([^\\.\\n\\d]+)(\\d{0,4})\\.(\\w{1,5})");
                string fullname=this.toolStripTextBox1.Text+"\\" + this.toolStripTextBox2.Text;
                string namefile = this.toolStripTextBox2.Text;
                if (reg.IsMatch(namefile))
                {
                    oBook.SaveAs(fullname);
                    Match res = reg.Match(namefile);
                    int number = Convert.ToInt32(res.Groups[2].Value) + 1;
                    this.toolStripTextBox2.Text = reg.Replace(namefile, "${1}" + number + ".${3}");
                }
                else
                {
                    MessageBox.Show("не верное имя файла, сейва не произошло");
                }
            }
            oApp.Visible = true;
        }
доку на объекты можно найти в книгах по vba
https://yadi.sk/d/xa-68mutigdXk
https://yadi.sk/d/fsmmAHZTigdXY
https://yadi.sk/i/JMpdtJ1DigdXU
wanes101 вне форума Ответить с цитированием
Старый 27.08.2015, 08:56   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Да с экзелем мне пока все понятно. А вот по Либре еще ответа не нашел.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт для мультимедийной презентации (Action Script 2.0) Baka-sama Помощь студентам 0 18.06.2012 18:43
Скрипт для сайта! Jquery или просто java script! bulat786 JavaScript, Ajax 7 03.11.2011 14:15
Кто поможет изменить скрипт:<script src="http://up4um.com/js/widget.js" F23 Помощь студентам 0 15.02.2011 21:40
Скрипт на java script maksimka2112 Помощь студентам 0 10.05.2010 23:47
BinToHex из Classes. Как юзать и скормить ей большой String Alex Cones Общие вопросы Delphi 5 05.11.2009 17:18