Что нового

Есть ли библиотека по работе с OpenOffice?

V

VitAl2013

Гость
Больше интересует работа с Calc, но и остальные приветствуются.
 

Pavel

Новичок
Сообщения
125
Репутация
3
Поднимаю тему!
Вопрос тот же: есть бот, написанный под Excel. Однако, легализация ПО даёт о себе знать: многие конторы ставят OpenOffice и не парятся. Боты под Excel перестают работать.
Кто знает решение?
Заранее благодарен!
 

Sp01LeR

Знающий
Сообщения
45
Репутация
12
Автоматизировать OOo, как тот же MSO с разбегу не получицца - GTK+ на винде устроен совсем иначе, чем на Линухе...

Возможные варианты:
- учить Питон, так как похоже, что он будет основным СЯ для интерактивного взаимодействия с OOo;
- конвертировать таблицы из Calc в *.csv формат и работать уже с ними на AutoIT, хотя велосипедов придется написать достаточно(хотя бы для банального суммирования ячеек в колонке);
- любой другой более-менее подходящий вариант, включая переход на SQlite, но тут может возникнуть проблемма с изучением SQL-синтаксиса у блАндинистых секретуток и менеджеров низшего звена, а также нежеланием консервативного начальства сьезжать с экселевских рельс...
 

Pavel

Новичок
Сообщения
125
Репутация
3
Sp01LeR сказал(а):
Автоматизировать OOo, как тот же MSO с разбегу не получицца - GTK+ на винде устроен совсем иначе, чем на Линухе...

Возможные варианты:
- учить Питон, так как похоже, что он будет основным СЯ для интерактивного взаимодействия с OOo;
- конвертировать таблицы из Calc в *.csv формат и работать уже с ними на AutoIT, хотя велосипедов придется написать достаточно(хотя бы для банального суммирования ячеек в колонке);
- любой другой более-менее подходящий вариант, включая переход на SQlite, но тут может возникнуть проблемма с изучением SQL-синтаксиса у блАндинистых секретуток и менеджеров низшего звена, а также нежеланием консервативного начальства сьезжать с экселевских рельс...
Однако хоть какую-то, да, без сомнения кривую, библиотеку найти удалось. Увы, она настолько сыра, что не позволяет использовать простейшие функции. Переход с Excel неудобоврим (все привыкли видеть прайсы в нём онли).
 

ak40u

Знающий
Сообщения
33
Репутация
7
http://www.autoitscript.com/forum/topic/91439-ooo-com-udf/
 

Leagnus

Новичок
Сообщения
8
Репутация
0
Да, это моих рук дело. Давно я её писал. Но всё руки не доходили доделать...
 

K. Misha

Новичок
Сообщения
5
Репутация
0
[Автоматизация] Re: Есть ли библиотека по работе с OpenOffice?

Есть библиотека предназначена для работы с OpenOffice через ваше приложение.
Функционал данной библиотеки:

OOAPI3 bool connect2Calc(const char *file, bool hidden);
OOAPI3 void disconnect();
OOAPI3 bool selectSheet(short sheet);
OOAPI3 void setVal(int, int, double);
OOAPI3 void setText(int x, int y, const wchar_t *text);
OOAPI3 bool setBold(int x, int y);
OOAPI3 bool setFontColor(int x, int y, int r, int g, int b);
OOAPI3 bool setBgColor(int x, int y, int r, int g, int b);
OOAPI3 bool setFontSize(int x, int y, short size);
OOAPI3 bool setItalic(int x, int y);
OOAPI3 bool setHoriz(int x, int y, short hor);
OOAPI3 bool setBorders(int x, int y, bool lft, bool tp, bool rt, bool dn, short r, short g, short b);
OOAPI3 bool setColWidth(int col, long width);
OOAPI3 bool mergeRange(const char *range);
OOAPI3 bool exportToUrl(const wchar_t *url);
OOAPI3 double getVal(int x, int y);
OOAPI3 char* getText(int x, int y);
OOAPI3 bool isWin();
OOAPI3 bool isInstall();
OOAPI3 char * getFontName(int x, int y);
OOAPI3 void setFont4Cell( int x, int y, char * fontName );
OOAPI3 void setFont4Col(int col, char * fontName );
OOAPI3 void setWrapped( int x, int y, bool bWrapped );
OOAPI3 void setCellStyle( int x, int y, long lCellStyle );
OOAPI3 void setColStyle( int col, long lColStyle );
OOAPI3 void setOverline( int x, int y, bool bOverline );
OOAPI3 void setUnderline( int x, int y, bool bUnderline );
OOAPI3 void setStrikeout( int x, int y, bool bStrikeout );
OOAPI3 void printfDocument();
OOAPI3 void closeDocument();
OOAPI3 long getSheetCount();
OOAPI3 void insertSheet(char * name, long lPos );
OOAPI3 long getSheetByName(char * name);
OOAPI3 char *getSheetById(long id);
OOAPI3 void delSheetByName(char * name);
OOAPI3 void delSheetById(long id);
OOAPI3 void setActiveSheet(long id);

Кого заинтересовало — [email protected]. Обращайтесь.

Спасибо за внимание.
 

Leagnus

Новичок
Сообщения
8
Репутация
0
K. Misha, блин, лучше бы сразу сказал: либа платная, стоит столько-то.
А что будет, если я её допишу и открою сырцы?
 

K. Misha

Новичок
Сообщения
5
Репутация
0
Чтоб её дописать сначала нужно получить исходники.
Получить их не получится. А написать самому будет ой как сложно.

Пиши, открывай на здоровье.
 

Leagnus

Новичок
Сообщения
8
Репутация
0
Чтобы её дописать, нужно знать объектную модель, а не исходники.
Экселевскую либу Локодарвин на оффоруме писал без исходников.
Основные функции в моей либе появились без знания исходников.
Не надо так высоко о себе мнить, – и другие будут о тебе лучшего мнения.
АЗжио вон какой огромный вклад внёс, Мистер Криейтор в самом начале, когда этого форума ещё не было. Вот их я уважаю.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Leagnus [?]
Локодарвин ... АЗжио ... Мистер Криейтор
Предупреждение За нарушение общих правил (пункт В.8):
Так как эта конференция называется "Русское сообщество AutoIt", язык общения на ней - Русский. Названия фирм или программных продуктов, аббревиатуры и т.д. должны быть написаны так, как они пишутся в оригинале, например не следует писать УСБ вместо USB. На форуме крайне не рекомендуется намеренно искажать русский язык и использовать "сетевой жаргон" на подобии "Аффтар выпей йадау!".


С уважением, ваш Глобальный модератор.
 

K. Misha

Новичок
Сообщения
5
Репутация
0
Я в сети не нашёл подобную библиотеку. Всё что можно сделать не используя её - это использовать COM. Если же такая идея у кого-то созреет - удачи вам.
 

sss

Продвинутый
Сообщения
332
Репутация
96
Посмотрите в сторону хабра. Там пишут динамическую библиотеку (dll) для OpenOffice, используя через C++ его API. Скомпилировать либу на Си и вызывать через AutoIt-овский DllCall. Путь тернист, но на крайний случай...

И кстати, очень уж функции из либы K. Misha похожи на те, что в статье - и типы, и названия... А всего-то надо было загуглить "OOAPI3". Платно, говорите?..
 

K. Misha

Новичок
Сообщения
5
Репутация
0
Я видел этот пост на хабре. Больше скажу, я даже пробовал его скомпилировать.
Если у Вас будет время, попробуйте и Вы. Вы будете неприятно огорчены.

Я нашёл ошибки в этом примере и исправил. Но даже после этого я выбросил всё то, что есть там и переписал всё заново.



Добавлено:
Сообщение автоматически объединено:

Если даже Вы решитесь использовать этот пример, можете посчитать сколько стоит работа программиста в месяц. Чтоб сделать с этого примера хоть что-то подобное(!) моей библиотеки уйдёт не менее 1-2 месяца.
А теперь просто подсчитайте сколько нужно заплатить программисту за это и время и сколько стоит библиотека.
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Может, кто не видел:

http://www.autoitscript.com/forum/topic/151530-ooolibo-calc-udf/

На первый взгляд, неплохо)
 

Pat4005

Новичок
Сообщения
85
Репутация
4
WSWR, отличная библиотека! Для работы требуется установленный OpenOffice (UDF работает с версией аж до 4.0.0) или LibreOffice. У кого вылетают ошибки при запуске демо (невозможность создания объекта), попробовать удалить и снова установить (полная установка) OO.
 
Верх