Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

18 Октябрь 2017, 17:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Редактирование текста, автоматизация, макрос.  (Прочитано 4022 раз)
0 Пользователей и 1 Гость смотрят эту тему.
EvgenStor
Новичок
*
Offline Offline

Сообщений: 13


« Стартовое сообщение: 20 Декабрь 2011, 14:52 »

Здравствуйте,
Столкнулся с проблемкой, помогите решить!
В ячейки есть текст в несколько строк, к нему надо добавить в конце каждой строки "<br>" что бы при экспорте в html каждая строка начиналась с новой строки. Выглядит это так:
Имеем ячейку A1:
1
2
3
4
5

Должно стать A1:
1<br>
2<br>
3<br>
4<br>
5<br>

Каким быстрым способом этого можно добиться? Если проставлять это в ручную, мне потребуется не меньше недели, текстов много.
Записан
Рыбка Рио
Ветеран
*****
Offline Offline

Сообщений: 1 678


« Ответ #1: 20 Декабрь 2011, 16:11 »

Вот такой макрос думаю должен работать и на Линукс и на Windows.

Sub Main
Doc = ThisComponent
Sheet = Doc.CurrentController.ActiveSheet
Selection = Doc.CurrentSelection
m=0
Dim SL(0)
If Selection.supportsService("com.sun.star.sheet.SheetCellRanges") then 'множественное выделение
   m=Selection.Count-1
   Redim SL(m)
   For i=0 to m
      SL(i)=Selection(i)
   Next
Else
   SL(0)=Selection
Endif
For i=0 to m
      k = SL(i).Rows.Count-1
      l = SL(i).Columns.Count-1
      For i1=0 to k
      For i2=0 to l
         s =SL(i).getCellByPosition(i2,i1).String
         If s<>"" then
            s = Join(Split(s,"<br>"),"") 'Replace не работает в данном случае почему-то
            s = Join(Split(s,chr(13)),"")
            s = Replace(s,chr(10),"<br>"+chr(10))
            SL(i).getCellByPosition(i2,i1).String = s+"<br>"
         Endif
      Next
      Next
Next
End Sub


[вложение удалено Администратором]
« Последнее редактирование: 20 Декабрь 2011, 16:14 от Клио » Записан

ubuntu 12.04 + LibO3.6.0
neft
Постоялец
***
Offline Offline

Сообщений: 189


« Ответ #2: 20 Декабрь 2011, 16:31 »

Добавить <br> можно, вот только при экспорте в html получаются не теги, а просто строки вида "1<br>"
Записан
EvgenStor
Новичок
*
Offline Offline

Сообщений: 13


« Ответ #3: 21 Декабрь 2011, 02:12 »

neft

не, не, все получается как надо, т.е. воспринимается как тег! Проверял лично расставлял <br> ручками.

Уважаемый Клио, спасибо огромное это именно то, что надо!!!!!!!
Расскажите пожалуйста, как сделать такие замечательные функциональные кнопочки, в моем документе?

еще раз огромное спасибо, все работает как надо!
Записан
Рыбка Рио
Ветеран
*****
Offline Offline

Сообщений: 1 678


« Ответ #4: 21 Декабрь 2011, 10:40 »

Расскажите пожалуйста, как сделать такие замечательные функциональные кнопочки, в моем документе?
Нужно включить панель инструментов "Элементы управления" (меню Вид - Панели инструментов - Элементы управления ). На этой панели нажать на кнопку "Режим разработки". После этого на этой панели станут активными кнопки добавления разных элементов управления, в т.ч. и кнопок. А уже имеющиеся кнопки можно редактировать. На кнопке можно кликнуть правой кнопкой мышки, и выбрать события. Там можно выбрать макрос, который будет выполняться.
Записан

ubuntu 12.04 + LibO3.6.0
EvgenStor
Новичок
*
Offline Offline

Сообщений: 13


« Ответ #5: 22 Декабрь 2011, 01:16 »

Там можно выбрать макрос, который будет выполняться.

А как его выбрать если его (вашего макроса) там нет в списке? Как добавить ваш макрос в папку с моими макросами?
Записан
EvgenStor
Новичок
*
Offline Offline

Сообщений: 13


« Ответ #6: 22 Декабрь 2011, 03:21 »

Вроде получилось! Создал кнопки, пока все работает! Кнопочка удаления тоже кстати нужная вещь!
А как будет выглядеть код для вставки символа не в конце строки а в начале?
Пример:
имеем ячейку
1
2
3
получаем ячейку
<li>1
<li>2
<li>3
Записан
Рыбка Рио
Ветеран
*****
Offline Offline

Сообщений: 1 678


« Ответ #7: 22 Декабрь 2011, 09:56 »

А как будет выглядеть код для вставки символа не в конце строки а в начале?
Пример:
имеем ячейку
1
2
3
получаем ячейку
<li>1
<li>2
<li>3
Вот эти 4 строчки
Код:
            s = Join(Split(s,"<br>"),"") 'Replace не работает в данном случае почему-то
            s = Join(Split(s,chr(13)),"")
            s = Replace(s,chr(10),"<br>"+chr(10))
            SL(i).getCellByPosition(i2,i1).String = s+"<br>"
нужно заменить на
Код:
            s = Join(Split(s,"<li>"),"")
            s = Join(Split(s,chr(13)),"")
            s = Replace(s,chr(10),chr(10)+"<li>")
            SL(i).getCellByPosition(i2,i1).String = "<li>"+s
Записан

ubuntu 12.04 + LibO3.6.0
EvgenStor
Новичок
*
Offline Offline

Сообщений: 13


« Ответ #8: 22 Декабрь 2011, 15:20 »

Клио, Спасибо огромнейшее!! Макрос получился просто идеален!
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!