|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Начну с очень грустного для себя открытия, что информации по работе с OpenOffice очень трудно найти даже на английском языке. И попрошу заранее особо умных не умничать, и не кидать умных ссылок (сам могу накидать http://www.oooforum.org/forum/viewforum.phtml?f=2), я их за неделю насмотрелся большая просьба выкладывать рабочие примеры, а не их кусочки. Это топ изначально планируется, для того чтобы больше не тратить по недели на то, что бы узнать, как объединить ячейки и т.д. (Кстати весьма буду благодарен если кто подскажет мой самый большой камень сейчас) Ну а для начал этого топа выложу то, что смог найти или методом тыка нашел, чтобы Вы не потратили столько времени, сколько я на пойки. Первый пример и очень классный я нашел на сайте http://www.rsdn.ru/Forum/?mid=1187888 Код: plaintext 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. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85.
----------------------------------------------------------- Вот что я смог сделать Код: plaintext 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. 46. 47. 48. 49.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2007, 17:18 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Если кто знает как в calc объединить ячейки плиз подсказать очень нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2007, 13:20 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Создай Uno - сервис, да и рули им, через метод executeDispatch. объект.executeDispatch(документ, 'команда', '', 0, значение_свойства) Например, значение_свойства(0).Name = 'ToPoint'; значение_свойства(0).Value = "$B$5:$E$7" Команды известны: '.uno:GoToCell' - выбор ячеек '.uno:ToggleMergeCells' - объединение ... ... только свойства прваильно заполняй, и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2007, 19:58 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
fokissЕсли кто знает как в calc объединить ячейки плиз подсказать очень нужно Маетесь глупостями, IMHO. OpenOffice, как таковой, вполне спокойно понимает базовый формат Excel (BIFF). Для формирования файлов - вполне достаточно средств вроде NativeExcel или XLSReadWriteII. И уже совсем отдельный вопрос - это открытие, печать, предпросмотр файлов (тот самый минимум средств для управления со стороны конечного приложения). И все. Цена вопроса - общее средство формирования файлов напрямую (с интерфейсом а-ля COM) и пара интерфейсных классов (которые нужны только в части запуска предпросмотра, ибо печать и открытие делаются через ShellAPI не в пример куда более надёжно, чем через COM/OLE). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2007, 01:23 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
grexhide OpenOffice, как таковой, вполне спокойно понимает базовый формат Excel (BIFF). Для формирования файлов - вполне достаточно средств вроде NativeExcel или XLSReadWriteII. Ну, и MSO понимает формат OpenOffice (.ods файлы). :) А вот из "NativeExcel или XLSReadWriteII" в OO - что называется, "без гарантии качества". Плавали, знаем. Может разработчики доберутся до поддержки ОО. Хотя ради чего им так стараться? grexhide И все. Цена вопроса - общее средство формирования файлов напрямую (с интерфейсом а-ля COM) и пара интерфейсных классов (которые нужны только в части запуска предпросмотра, ибо печать и открытие делаются через ShellAPI не в пример куда более надёжно, чем через COM/OLE). :+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2007, 10:53 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Я!!А вот из "NativeExcel или XLSReadWriteII" в OO - что называется, "без гарантии качества". Плавали, знаем. Может разработчики доберутся до поддержки ОО. Хотя ради чего им так стараться? Странно. Проблем замечено не было. Впрочем мои задачи ограничиваются довольно примитивными конструкциями (до графиков, графики, сводных таблиц и прочего) как то пока не дошло, впрочем, номинально данный функционал заявлен, и уже отдельный вопрос - как это все многообразие понимает сам ОО? Или что имеется в виду под "гарантией качества"?. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2007, 11:05 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Было дело: раскрашивал вертикально расположенные надписи: получилось, что при открытии в ОО фон с цветом шрифта совпал. В МО - нормально. Еще было пару раз, когда на итоговом личе были формулы, ссылающиеся на другие листы. В ОО оторбазилось как "Ошибка в формуле". Подробностей не помню, но эксперименты прекратил. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2007, 11:09 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Давайте не возводить дебаты, а давать просто пример и ответы. Большое спасибо гостю я вот пример выложу кому может пригодится. Код: plaintext 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.
Подскажите как сделать если нужен массив > 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2007, 11:31 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста как с помощью uno сделать рамку ячейки ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2007, 12:31 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
fokissПодскажите пожалуйста как с помощью uno сделать рамку ячейки Сперва выбираете нужную ячейку, потом командой: ".uno:SetBorderStyle" обрамляем. Трудность в параметре: массив типа PropertyValue, длиной 4. Для Name задаются OuterBorder.LeftBorder, OuterBorder.RightBorder, OuterBorder.TopBorder, OuterBorder.BottomBorder, а также (если несколько ячеек) - то InnerBorder.Horizontal, InnerBorder.Vertical (если эти параметры, то массив длиной не 4, а 6). Для значений Value задать массив [0..3], описывающий стиль линии. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2007, 13:12 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Кстати объединение ячейк в оле делается так Код: plaintext
Я!! Сперва выбираете нужную ячейку, потом командой: ".uno:SetBorderStyle" обрамляем. Трудность в параметре: массив типа PropertyValue, длиной 4. Для Name задаются OuterBorder.LeftBorder, OuterBorder.RightBorder, OuterBorder.TopBorder, OuterBorder.BottomBorder, а также (если несколько ячеек) - то InnerBorder.Horizontal, InnerBorder.Vertical (если эти параметры, то массив длиной не 4, а 6). Для значений Value задать массив [0..3], описывающий стиль линии. Пример бы не мог бы скинуть? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2007, 15:36 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Может кто подскажет как через Оле выронить по вертикали По горизонтали так Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2007, 11:03 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Объединение ячеек например так: Sheet.getCellRangeByPosition( 1, 1, 5, 1).Merge(true) Только учтите что в ОО адресация ячеек идет наоборот, т.е. сначала столбец потом строка. Например в данном случае getCellRangeByPosition( НачСтолбец, НачСтрока, КонСтолбец, КонСтрока) Ну и почитайте вот это http://www.rsdn.ru/article/openoffice/ooautomation.xml ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2007, 11:25 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Подскажите как через Оле выронить по вертикали??? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2007, 08:59 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Хочу сказать большое спасибо автору за данную тему. Я сам уже больше месяца стараюсь привыкнуть к ОО, после того как у нас отказались от закупки лицензионного MSOffice. Многое уже осознал, но вот не могу решить одну проблемку: как мне НЕ СОЗДАВАТЬ новый документ *.ods, а открыть существующий - забить в него данные и сохранить его под новым именем, но не закрывать. Всё это надо проделывать автоматически по нажатию на одну тока кнопку "Отчёт". В екселе у меня всё это делалось легко и быстро, а вот с ОО я подзавис, и пока главная моя беда - не могу открыть существующий так сказать шаблон. ПОМОГИТЕЕЕЕЕЕЕЕ!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2007, 14:38 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
fokissПервый пример и очень классный Код: plaintext 1. 2. 3. 4. 5.
Надо признать, пример действительно неординарный. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2007, 16:06 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
к вопросу про открытие файла - подскажите!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2007, 11:12 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Выкладываю небольшой модуль для работы с OO Calc. В архиве сам модуль и небольшой тестовый проект для проверки. Сделано в Delphi6. Вся работа через OLE. Может, кому пригодится. Дорабатывайте, кому что надо. Код используется в работающем проекте. Идея отсюда http://www.codenet.ru/progr/bcb/Open-Office-Calc-Automation.php ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2007, 21:02 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
тема перехода на openoffice - возникла и у нас на предприятии все отзывы очень помогли, чтобы разобраться для начала что не получается - так это управлять в CALC ориентацией страницы, размером (а3 а4), полями Плиз, помогите где искать или подскажите кто может ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2007, 19:11 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2007, 20:03 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Вопрос к Yurik74. Скачала выш пример, смотрела ссылку. На основании вашего примера не получ сделать WrapText ячейке и установить параметры страницы (альбомная, А4, поля) где можно почитать как вы строили свой пример??? плиз , очень нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2007, 20:03 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
hor-olgaСкачала выш пример, смотрела ссылку. На основании вашего примера не получ сделать WrapText ячейке и установить параметры страницы (альбомная, А4, поля) где можно почитать как вы строили свой пример??? плиз , очень нужно WrapText уже есть, код на работе, завтра выложу, параметры страницы тоже есть (сделал вчера после вашего предыдущего поста, нам в работе это не надо). Просто код в постоянной доработке, но уже используется. Я свой код строил, исходя из того, что нам надо только вывести отчет в Calc, а дальше пользователь уже сам решает, что с ним делать - печатать, сохранять и т.д. Поэтому там почти нет методов на чтение свойств. В принципе, можно сделать и печать, и сохранение, все это можно сделать в скрытом режиме, не выводя окно Calc на экран. Код основан на том, что есть в ссылке выше + OpenOffice SDK. Правда в SDK почти все на Java, приходится думать и много экспериментировать. Правда, можно перейти на использование UNO (лениво :) ), в этом случае проще, можно необходимые действия записать в макрос и посмотреть его код. Интересно, мой код помог? Если так, очень рад. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2007, 20:25 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
Yurik74 До конца еще не разобралась, но код уже помог Если делать обратный процесс(из OO куда грузить), можно использовать этот же код? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2007, 09:31 |
|
Delphi & OpenOffice - Заполним пробел
|
|||
---|---|---|---|
#18+
hor-olgaно код уже помог Это хорошо :) hor-olga Если делать обратный процесс(из OO куда грузить), можно использовать этот же код? Да, можно, там, где не используется CellRange, а идет обращение к одной ячейке или там, где установка чего-либо другого, например, цвета. Опиши метод на чтение свойства и в нем Код: plaintext
ресурс, посвященный макросам OpenOffice.org и конкретная дока оттуда на Basic Выкладываю свой код, уже в Delphi2006. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2007, 16:29 |
|
|
start [/forum/topic.php?fid=58&fpage=8&tid=2036884]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 163ms |
0 / 0 |