Libreoffice basic: Программирование с помощью LibreOffice Basic

Содержание

Программирование LibreOffice Base. Часть 1 / Хабр

В opensource офисных пакетах OpenOffice, LibreOffice есть редко используемая и очень скупо документированная возможность — программирование, которая позволяет быстро разрабатывать приложения, аналогичные, например, приложениям Microsoft Access. Сегодня я сделаю небольшой обзор возможностей программирования OpenOffice, LibreOffice.

Вопрос: а зачем?

Я не буду сейчас влазить в исторические причины, т.к. у работников, причастных к автоматизации — это и руководители предприятий, и дистрибьюторы ERP-систем, и IT-службы внутри предприятия, и консалтинг — у всех свои причины (зачастую подкрепленные денежной выгодой) отстаивать именно свою точку зрения. Но я думаю, все согласятся с тем что в повседневной работе подразделений предприятий Excel и его бесплатный аналог Calc (из пакета OpenOffice, LibreOffice) используется очень широко. И уж если такое явление существует, то можно утверждать что это уже не случайность, а так сказать производственная необходимость, и уж точно не вина работников — а скорее недоработка автоматизаторов.

В пакетах OpenOffice, LibreOffice есть компонент для работы с базами данных — Base. Я пытался освоить работу с ним еще до OpenOffice, LibreOffice — во времена StarBase. Но все мои попытки упирались в полное отсутствие документации по разработке (программированию). На сегодня, документации по-прежнему мало, и, наверное, наиболее полезным ресурсом является книга большого энтузиаста программирования OpenOffice, LibreOffice — Andrew Pitonyak. Также была издана книга на русском языке, включающая главу 7. Язык OOo Basic — УДК 681.3.06 ББК 32.973.26-018.2 К59 Козодаев, Р. Ю. К59 OpenOffice.org 3. Полное руководство пользователя / Р. Ю. Козодаев, А. В. Маджугин / Под ред. Е. В. Ушаковой. — СПб.: БХВ-Петербург, 2010. — 704 с.: ил. + Дистрибутив (на CD-ROM) — (Библиотека ГНУ/Линуксцентра) ISBN 978-5-9775-0385-3

Поэтому в качестве распространения информации о возможностях программирования OpenOffice, LibreOffice с упором на компонент Base создано это сообщение.

Пакет LibreOffice сейчас актуален в версии 6. 2 которую можно получить на сайте разработчика.

Также пакет предустановлен на многих дистрибутивах Linux (иногда не предустановлен пакет Base, так как он сравнительно редко используется).

На этапе создания новой базы данных Base можно выбрать вариант работы со встроенной базой данных или присоединиться к серверу базы данных. То есть многопользовательская работа поддерживается. Для экспериментов можно выбрать любой из вариантов.

Редактор макросов открывается последовательным выбором пунктов меню Tools->Macros->Organize Macros->LibreOffice Basic.

Перед вами появится выбор место хранения макросов. Наиболее логичным будет хранить макросы в файле базы данных, т.к. их в этом случае можно будет распространять одним файлом.

Создадим самый простой макрос:

Sub Hello
  MsgBox "Hello"
End Sub

Далее создадим форму

Forms->Create Form In Design View

. И добавим в конструкторе формы элемент кнопка. После создания кнопки распахнем палитру свойств кнопки, нажав правую кнопку мыши и далее последовательно выбрав

Control->Execute Action->Macro->Имя библиотеки->Hello

.

Сохранив форму вызываем ее на выполнение и наблюдаем работу макроса. Или не наблюдаем. Все дело в защите которая в связи с участившимися вредоносными макросами отключает их работу по умолчанию.

Если тем вызовет хоть какой-то интерес готов продолжить более конкретными темами.

Глава 13 – Работа с макросами в LibreOffice¶

Добавление макроса

Первый шаг в изучении программирования макросов, это найти и использовать существующие макросы. В этом разделе подразумевается, что у вас уже имеется макрос, который вы хотите использовать. Вы могли найти его в Интернете или в какой-нибудь книге. Рассмотрим пример 1. Чтобы записать этот макрос, вы должны предварительно создать библиотеку и модуль, и уже в модуле написать текст макроса, смотрите Организация макросов.

Пример 1: Простой макрос, который пишет “Hello, World”:

Sub HelloMacro
  Print "Hello, World"
End Sub

Чтобы создать библиотеку, необходимо выполнить следующие шаги:

  1. Выберете пункты главного меню , чтобы открыть диалог работы с макросами Libreoffice Basic.

Диалог работы с макросами LibreOffice Basic

  1. Нажмите Управление, чтобы открыть диалог организатора макросов и выберите вкладку Библиотеки.
  2. Выберите в выпадающем списке Приложение/Документ пункт Мои макросы и диалоги.

Диалог организатора макросов LibreOffice Basic

  1. Нажмите Создать, чтобы открыть диалог создания новой библиотеки.
  2. Введите имя библиотеки, например, TestLibrary и нажмите OK.
  3. Выберите вкладку Модули.
  4. В списке модулей раскройте Мои макросы и выберите TestLibrary. Модуль с именем Module1 уже существует, он может содержать ваши макросы. Если необходимо, том можно нажать Создать, чтобы создать другой модуль в библиотеке.
  5. Выберите Module1 или новый модуль, который вы создали и нажмите Правка, чтобы открыть интегрированную среду разработки (IDE). Интегрированная среда разработки это текстовый редактор, включённый в LibreOffice, который позволяет создавать и редактировать макросы.

Интегрированная среда разработки макросов

  1. После создания нового модуля он содержит комментарий и пустой макрос, названный Main, который ничего не делает.
  2. Добавьте новый макрос или до Sub Main или после End Sub. В примере ниже приведен новый макрос, который был добавлен до Sub Main.

Пример 2: Module1 после добавления нового макроса:

REM  *****  BASIC  *****

Sub HelloMacro
  Print "Привет"
End Sub

Sub Main

End Sub
  1. Нажмите на значок Компилировать на панели инструментов, чтобы откомпилировать макрос.
  1. Поставьте курсор в процедуру HelloMacro и нажмите на значок Выполнить BASIC на панели инструментов или нажмите клавишу F5, чтобы выполнить HelloMacro в модуле. Откроется маленький диалог со словом Привет. Если курсор не находится внутри процедуры Sub или функции Function, откроется диалог выбора макроса для запуска.
  1. Нажмите OK, чтобы закрыть диалог.
  2. Чтобы выбрать и выполнить любой макрос в данном модуле, нажмите значок Выбрать макрос на стандартной панели инструментов или выберите .
  1. Выберите макрос и нажмите Выполнить.

Запись макросов

Если вы хотите многократно ввести одинаковую информацию, вы можете скопировать эту информацию после того, как она введена в первый раз, затем вставлять эту информацию в ваш документ каждый раз по мере необходимости. Однако, если вы скопировали в буфер обмена что-то ещё, содержимое буфера меняется. Это означает, что вы должны заново скопировать вашу повторяющуюся информацию. Чтобы обойти эту проблему, вы можете создать макрос, который в процессе выполнения вводит нужную вам информацию.

Примечание

Для некоторых типов многократно вводимой в документах информации более удобно создать файл автотекста. Описание работы с автотекстом смотрите в справочной системе и в главе Глава 3 – Использование Стилей и Шаблонов данного руководства.

  1. Убедитесь, что функция записи макросов активизирована, выбрав . Установите флажок Включить запись макросов. По умолчанию эта функция отключена, когда LibreOffice впервые установлен на ваш компьютер.
  2. Выберите из главного меню, чтобы запустить запись макроса. Появится маленький диалог, подтверждающий, что LibreOffice записывает ваши действия.

Диалог записи макроса

  1. Наберите желаемую информацию или выполните необходимые действия. Например, напечатайте ваше имя.
  2. Нажмите Завершить запись в маленьком диалоге, чтобы остановить запись, и появится диалог работы с макросами LibreOffice.
  3. Откройте библиотечный контейнер Мои макросы.
  4. Найдите библиотеку с именем Standard в Моих макросах. Обратите внимание, что каждый библиотечный контейнер содержит библиотеку Standard.
  5. Выберите библиотеку Standard и нажмите Создать модуль, чтобы создать новый модуль, содержащий макросы. Откроется диалог создания модуля.

Диалог создания модуля

  1. Задайте название для нового модуля, например, Recorded и нажмите OK, чтобы создать модуль. В диалоге работы с макросами теперь виден этот новый модуль в составе библиотеки Standard.
  2. В поле Имя макроса напечатайте имя для макроса, который вы только что записали, например, EnterMyName.
  3. Нажмите Записать, чтобы сохранить макрос и закрыть диалог работы с макросами.
  4. Если вы верно выполнили все шаги, описанные выше, библиотека Standard теперь содержит модуль Recorded, и этот модуль содержит макрос EnterMyName.

Примечание

Когда LibreOffice создаёт новый модуль, в этот модуль автоматически добавляется процедура с именем Main.

Запуск макроса

  1. Выберите , чтобы открыть диалог выбора макроса.
  2. Например, выберите ваш только что созданный макрос EnterMyName и нажмите Выполнить.
  3. Можно также вызвать из главного меню , чтобы открыть диалог работы с макросами, выбрать ваш макрос и нажать Выполнить.

Диалог выбора макроса

Просмотр и редактирование макросов

Чтобы просмотреть или отредактировать созданные вами макросы выполните:

  1. , чтобы открыть диалог работы с макросами.
  2. Выберите ваш новый макрос EnterMyName и нажмите Правка, чтобы открыть макрос в интегрированной среде разработки.

Макрос EnterMyName не так уж сложен, как может показаться. Изучение нескольких вещей существенно поможет в понимании макросов. Начнём сначала и посмотрим на самую первую строку примера.

Макрос EnterMyName не так уж сложен, как может показаться. Изучение нескольких вещей существенно поможет в понимании макросов. Начнём сначала и посмотрим на самую первую строку примера.

Пример 3: Сгенерированный макрос EnterMyname:

REM  *****  BASIC  *****
Sub Main

End Sub

sub EnterMyName
rem -------------------------------------------------------------
rem define variables (определение переменных)
dim document   as object
dim dispatcher as object
rem -------------------------------------------------------------
rem get access to the document (получение доступа к документу)
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem -------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Text"
args1(0).Value = "Иван Сидорович Петров"

dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
end sub
Комментарии

Подробные комментарии являются необходимой частью программы. Без комментариев и сам программист зачастую забывает, что же он написал несколько недель (а может и месяцев или лет) тому назад.

Все комментарии в макросах начинаются с ключевого слова REM. Весь текст строки после REM игнорируется компьютером при выполнении макроса. Можно также использовать символ одинарной кавычки ('), чтобы начать комментарий.

Ключевые слова в LibreOffice Basic могут быть записаны в любом регистре, таким образом REM, Rem, и rem могут начинать комментарий. Если вы используете символические константы, определяемые в программном интерфейсе приложения (Application Programming Interface, API), безопаснее считать, что имена чувствительны к регистру. Символические константы не описаны в данном руководстве, они не нужны, когда вы используете функцию записи макросов в LibreOffice.

Определение процедур

Отдельные макросы сохраняются в процедурах, которые начинаются с ключевого слова SUB. Окончание процедуры обозначается END SUB. Код модуля в примере 3 начинается с определения процедуры, названной Main, в которой нет ничего, и она ничего не делает. Следующая процедура, EnterMyName, содержит сгенерированный код вашего макроса.

Примечание

Когда LibreOffice создаёт новый модуль, в этот модуль всегда автоматически добавляется процедура с именем Main.

Существует много полезной информации, не вошедшей в данное руководство, однако знание о ней весьма интересно:

  • Вы можете написать процедуры, которые используют некоторые “входные” величины, называемые аргументами. Однако, функция записи макросов не предоставляет возможности использовать аргументы в процедурах.
  • Помимо процедур существуют также функции, которые могут “возвращать” значение. Функции определяются ключевым словом FUNCTION в начале. Однако, записанные макросы, – это всегда процедуры, а не функции.
Определение переменных

Вы можете записать информацию на листе бумаги и позднее воспользоваться этой информацией. Переменные, подобно листу бумаги, содержат информацию, которую можно изменять или читать. Ключевое слово Dim используется для описания типа переменной и для задания размерности массивов. Оператор dim в макросе EnterMyName используется подобно подготовке листа бумаги для записи информации.

В макросе EnterMyName переменные document и dispatcher определены с типом object (объект). Другие часто используемые типы переменных включают string (строка), integer (целое) и date (дата). Третья переменная с именем args1 – это массив значений свойств. Массивы это переменные, содержащие несколько величин, подобно тому, как в одной книге содержится несколько страниц. Величины в массивах обычно нумеруются начиная с нуля. Число в скобках задаёт максимальный номер, используемый для доступа к элементу массива. В данном примере в массиве содержится только одна величина, и она имеет номер ноль.

Как это работает

Разберёмся более подробно с кодом макроса EnterMyName. Может быть вы и не поймёте всех тонкостей, но разбор каждой строки в коде позволит вам осознать то, как работают макросы.

Определение начала макроса:

Определение переменной:

Определение переменной:

Объект ThisComponent ссылается на текущий документ.

document = ThisComponent.CurrentController.Frame

CurrentController – свойство, ссылающиеся на службу, которая управляет документом. Например, когда вы печатаете на клавиатуре, – это текущий процесс, который управляет вводом в документ того, что вы напечатали. CurrentController затем отправляет изменения в блок данных документа.

Frame – свойство службы, которое возвращает основной блок данных документа. Таким образом, переменная с именем document ссылается на блок данных документа, который получает команды диспетчера.

dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

Большинство задач в LibreOffice выполняется посредством диспетчеризации (отправки) команды (dispatching a command). LibreOffice включает службу DispatchHelper, которая чаще всего применяется при использовании диспетчера в макросах. Метод CreateUnoService получает имя службы и пытается создать экземпляр этой службы. По завершении метода, переменная dispatcher содержит ссылку на службу DispatchHelper.

dim args1(0) as new com.sun.star.beans.PropertyValue

Определяет массив свойств. Каждое свойство имеет имя и значение. Другими словами, это пара имя/значение. Созданный массив содержит одно свойства, доступное по номеру ноль.

args1(0).Name = "Text"
args1(0).Value = "Иван Сидорович Петров"

Задаём для свойства имя “Text” и значение “Иван Сидорович Петров”, это значение и есть тот самый текст, который будет вставлен, когда макрос сработает.

dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())

Вот тут и случается чудо. Служба DispatchHelper посылает блоку данных документа (ссылка на который сохранена в переменной document) команду .uno:InsertText. Описание следующих двух аргументов выходят за рамки данного руководства. Последний аргумент – это массив свойств, используемый для выполнения команды InsertText.

Последняя строка кода, конец процедуры.

Все вопросы по теме libreoffice-basic

UI выглядит как: Счет: Wessex Bank PLC Доход: 200 € Стоимость: Дата: 28.02.2021 Вывод должен быть список ниже в клетках: Дата: |. Счет: |. Доход: |. Стоимость: |.
28.02.2021 |. Wessex Bank PLC | 200 € | 28.02.2021 |. Еда |. — |. 175 € | Подсказка: я хотел бы иметь список 5-7 брон….

У меня есть базовая база данных LibreOffice с формой и элементом управления таблицей. Есть макрос, который получает данные для помещения в таблицу. Таблица не привязана к источнику данных и имеет 1 столбец «id». Я пробую следующий код, чтобы добавить строку в пустую таблицу:
oFormTasks = oCurrent….

Мне нужно что-то запрограммировать в LibreOffice Basic, но я никогда этого раньше не делал. У меня просто основа на python, так что для меня это действительно ново. Я не нашел свежей документации, поэтому читаю …….

У меня есть таблица макросов, которую я создал в Windows, которая захватывает путь к папке, в которой сейчас находится электронная таблица, а затем открывает папку внутри этого каталога.
Я использую команду shell («C:\Windows\explorer.exe»,1,FolderPath), где «FolderPath» — это строка, в которой указ….

Добавляем детали. У меня есть такая таблица:
B C D E F G H
Date Time Kwh $/KwCost Hours/MonthsCost/Kwh
2021-01-01 0:15 0.69 $0.00 0 months $0.15
2021-01-01 0:30 0.51 $0.00 0 11-12,1-5 $0.05
01/08/21 0:45 ….

Я пишу программу макросов в электронной таблице LibreOffice Calc. Этот макрос должен делать следующее (среди прочего):
открыть существующий текстовый документ ODT как шаблон искать и заменять некоторые строки новыми значениями сохраните копию как новый файл создать и открыть версию PDF
Возможно ли ….

Я новичок и использую в макросе LibreOffice команду оболочки:
Shell(Pathname, Windowstyle, Param, bSync)

Для активации некоторых сценариев bash. Читая блоги, я понимаю, что передача значений переменных односторонняя, сверху вниз. Есть ли способ вернуть к вызывающему макросу некоторые значения….

Я пытаюсь создать базовый макрос libreoffice, который позволяет копировать все содержимое файла в строку таблицы. Приведенный ниже код правильно работает с текстовыми файлами, такими как .ods или .txt, но имеет некоторые проблемы с файлами .pdf и .ods. В частности, происходит сбой в методе getText….

У меня есть функция из Функция доступа к диапазону ячеек (повторяется здесь):
public function CHECKBZRANGE(vCellRangeValues as variant) as integer

dim i as integer
dim vCellValue as variant

for each vCellValue in vCellRangeValues
msgbox vCellValue
i = i + 1
next

….

Установка: LibreOffice 7.0.0.3, Win10 2004 19041.450
Когда я запускаю этот код, я получаю сообщение об ошибке «Не установлена ​​переменная объекта». В отладчике LibreOffice я правильно вижу двумерный массив со значениями. Я не могу получить доступ к отдельным значениям внутри массива. Что я делаю….

Я не могу понять (или найти пример), как выполнить следующую простую вещь в LibreOffice Calc 6.2:
У меня есть фигура для рисования (например, простой прямоугольник) на листе (назовите ее ShapeA) и форму текстового поля на другом листе (назовите ее TextboxB). Я хочу сделать следующее: когда я нажима….

Я создал форму базы данных с двумя комбинированными списками: Combo1 и Combo2.
Видимость Combo2 зависит от статуса Combo1: Combo1 установлен, Combo2 виден; Combo1 не отмечен, Combo2 скрыт.
Я ожидал найти что-то вроде Combo2.setVisible(Combo1.isVisible()), но был слишком оптимистом.
Это макрос, с к….

Я использую C ++ для управления LibreOffice / OpenOffice из другого приложения, но я думаю, вы можете мне помочь, если знаете и java-bridge. Итак, в основном я хочу загрузить документ (работает), установить текст ячейки (работает) и установить ячейку таблицы для горизонтального выравнивания по прав….

Я хочу получить текущий элемент в LibreOffice Impress, чтобы применить к нему изменения.
Например, я пытаюсь получить эту фигуру, чтобы изменить текст в ней с помощью макросов.

Я пытался найти информацию с помощью рентгеновского аппарата, но безуспешно…..

Простой запрос: у меня есть калькуляционные таблицы с несколькими таблицами данных, которые нужно отсортировать по значениям, которые я определил (этот UserDefIndex установлен)? Я надеюсь найти способ написать макрос, который будет выполнять такую ​​сортировку для выделенных мною ячеек, в отличие о….

Какой самый простой способ дублировать диалог макроса в OpenOffice / LibreOffice Calc?
У меня уже есть один, созданный для конкретной задачи, но мне нужен другой, который немного отличается, и я не хочу создавать его с нуля. Я попытался отредактировать ODS как ZIP и продублировать ресурс диалога, н….

Я пытаюсь ознакомиться с использованием Macro и Uno API на базе LibreOffice, я попытался открыть свой файл .ODB с Uno Offeredatabasedocument (DOC здесь: https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1sdb_1_1OfficeDatabaseDocument.html#a3d0b1f053d53f5b196e4c19e55a519ae ), что….

Я пишу макрос для LibreOffice Calc на языке Basic в режиме совместимости с VBA. Он жалуется, когда я использую эту строку:
Const BASE = 3

Ошибка синтаксиса BASIC. Ожидается символ.
И цвет синтаксиса, кажется, указывает на то, что «BASE» — ключевое слово или зарезервированное слово. Другие кон….

Кажется, я не могу найти простого ответа на этот вопрос. У меня это успешно работает в Libreoffice Basic:
NamedRange = ThisComponent.NamedRanges.getByName(«transactions_detail»)

RefCells = NamedRange.getReferredCells()

Set MainRange = RefCells.getDataArray()

Затем я перебираю MainRange и вытаски….

Я пишу функцию в LibreOffice basic для поиска позиции символа в строке:
REM ***** BASIC *****

Const Source = «abcdefghijklmnopwrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ»

Function GetPos(Char As String) As Integer

GetPos = InStr(Source, Char)

End Function

И я вызываю его из электронной таблицы, исп….

Можно ли запустить один макрос для всех файлов xls / xlsx, и если да, то как? Макрос, показанный ниже, масштабирует файл Excel, чтобы он поместился на одной странице, что необходимо, так как количество столбцов равно 19 и необходимо для преобразования его в PDF с помощью lo cli.
Бесплатная офисная ….

В LibreOffice Calc у меня есть вызов функции (макроса) LibreOffice Basic в ячейке. Как я могу обновить эту ячейку автоматически , если какая-то другая ячейка была изменена, без обновления всего листа?….

Мне нужно найти текст в таблице Writer, а затем передать содержимое ячейки справа от найденного текста в переменную. Текст успешно найден с этим кодом:
Sub get_contr_num
dim oDoc as Object
dim oFound as Object
dim oDescriptor
dim oCursor as Object
oDoc = ThisComponent
oDescr….

Часть кода
dim oMainForm as object
dim oColumnList as object
dim theValue as variant

oMainForm = ThisDatabaseDocument.FormDocuments.getByName(«update_rform»)
oColumnList = oMainForm.getByName(«rid») #rid is the name of the field from which I need to get the value
theValue=oColumnList.getCur….

Этот вопрос был отправлен, чтобы помочь решить эту проблему Спросите Ubuntu о награде в 350 баллов, которая заканчивается сегодня. Я бы предпочел, чтобы кто-то в переполнении стека отправил ответ и получил награду, чем увидел бы, что оно не будет вознаграждено, а OP не получит рабочего решения…..

Переменные и типы данных LibreOffice Basic

Я уже очень давно обещал начать писать о скриптовом языке программирования Basic в LibreOffice и создании при помощи этого языка макросов. Эта статья посвящена типам данных используемых в Basic и, в большей мере, правилам описания и возможности использования переменных. Как всегда я постараюсь выложить максимум информации, и по этому надеюсь что эта простая тема будет полезна не только начинающим пользователям. Отдельно хотелось бы поблагодарить всех, кто прокомментировал статью, дал свои рекомендации, и помог разобраться со сложными моментами.

Соглашения об именовании переменных

Имена переменных не могут включать более 255 символов. Любое имя переменной должно начинаться с заглавной или строчной буквы латинского алфавита или знака подчеркивания («_»). В именах переменных разрешается использовать цифры и знак подчеркивания. Некоторые другие знаки препинания и буквы не латинского алфавита приведут к появлению сообщения «Синтаксическая ошибка» или «Ошибка выполнения BASIC», если их не заключить в квадратные скобки.

Примеры правильного наименования переменных.

MyNumber=5
MyNumber5=15
MyNumber_5=20
[My Number]=20.5
[5MyNumber]=12
[Number,Mine]=12
[DéjàVu]="кажется я это видел!"
[Моя переменная]="первый пошёл!"
[Мой % от сделки]=0.0001

Обратите внимание на квадратные скобки. Если их убрать, то макрос начнет выдавать ошибку. Как вы можете догадаться, этот способ позволяет нам задавать переменные с кириллическими именами. Но для того, чтобы писать также как в 1С только русскими командами, вам придется сделать довольно толстый слой абстракции. Помните, что все служебные слова, встроенные объекты, их методы и свойства в языке LibreOffice Basic в настоящее время пишутся латинским алфавитом. Удобно ли пользоваться квадратными скобками, решать вам. Возможность задавать экзотические
имена переменным существует, но на практике в нашем сообществе этот функционал используется исключительно редко.

Объявление переменных

Строго говоря в Basic объявлять переменные не обязательно, за исключением массивов. Если вы пишите макрос из пары строчек, и этот макрос будет работать с небольшими документами, то объявлением переменных можно пренебречь. В этом случае переменная будет автоматически объявляться как тип Variant. Во всех случаях когда макрос больше пары строчек или документ большой, настоятельно рекомендуется объявлять переменные. Во-первых, это увеличивает читаемость текста. Во-вторых, это позволяет контролировать переменные, что может значительно облегчить поиск ошибок. В-третьих, тип данных Variant очень ресурсозатратный, и необходимо значительное время для скрытого преобразования. Кроме того, Variant выбирает не оптимальный тип переменной для данных, что также увеличивает загруженность ресурсов компьютера.

Basic предоставляет возможность автоматического присвоения типа переменной по её префиксу (первой буквы в имени) для упрощения работы, если вы предпочитаете использовать венгерскую нотацию. Для этого используется ключевое слово DefXXX и после него буква, с которой начинаются переменные этого типа. XXX в данном случае буквенное обозначение типа. Ключевое слово с буквой будет работать в пределах модуля, и должно указываться до появления подпрограмм и функций. Всего существует 11 таких типов.

DefBool — для логический переменных;
DefInt — для целочисленных переменных типа Integer;
DefLng — для целочисленных переменных типа Long;
DefSng — для переменных с плавающей точкой одинарной точности типа Single;
DefDbl — для переменных с плавающей точкой двойной точности типа Double;
DefCur — для переменных с фиксированной точкой типа Currency;
DefStr — для строковых переменных;
DefDate — для переменных даты и времени;
DefVar — для переменных типа Variant;
DefObj — для объектных переменных;
DefErr — для объектных переменных содержащих информацию об ошибках.

Если вы уже имеете представление о типах переменных в LibreOffice Basic, то наверное заметили, что в этом списке нет типа Byte, но есть для странного зверя с типом Error. К сожалению, это нужно просто запомнить. Вменяемого ответа на этот вопрос я пока не нашёл. Этот способ удобен, так как тип присваивается переменным автоматически. Но он не позволяет находить ошибки, связанные с опечатками в переменных. Кроме того, не удастся задать буквы не латинского алфавита, то есть, все имена переменных в квадратных скобках, которые необходимо объявлять, нужно объявлять явно.

Для избежания случайных опечаток при использовании объявленных явно переменных можно воспользоваться инструкцией OPTION EXPLICIT. Эта инструкция должна быть первой строкой кода в модуле. Все остальные команды, кроме комментариев, должны располагаться после неё. Эта инструкция указывает интерпретатору, что все переменные должны быть объявлены явно, иначе он выдает ошибку. Естественно, эта инструкция делает бессмысленным использование инструкции Def в коде.

Объявить переменную можно с помощью оператора Dim. Можно объявлять несколько переменных одновременно даже разного типа, если разделять их имена запятыми. Для определения типа переменной при явном объявлении можно использовать либо соответствующее ключевое слово, либо знак типа после имени. Если после переменной не используется ключевое слово или знак типа переменной, то ей автоматически присваивается тип Variant. Например:

Dim iMyVar 'объявлена переменная типа Variant'
Dim iMyVar1 As Integer, iMyVar2 As Integer 'в обоих случаях тип целое'
Dim iMyVar3, iMyVar4 As Integer 'в этом случае первая переменная'
                                'Variant, а вторая целое'

Типы переменных

В LibreOffice Basic предусмотрена поддержка семи классов переменных.

  • Логические переменные содержат одно из значений: TRUE или FALSE.
  • Числовые переменные содержат числовые значения. Они могут быть целочисленные, целочисленные положительные, с плавающей точкой и с фиксированной точкой.
  • Строковые переменные содержат строки символов.
  • Переменные даты могут содержать дату и/или время во внутреннем формате.
  • Объектные переменные могут содержать объекты различных типов.
  • Специальные типы, такие как структуры, массивы.
  • Абстрактный тип Variant.

Логические переменные — тип Boolean

Переменные типа Boolean могут содержать только одно из двух значений: TRUE или FALSE. При этом нужно понимать, что в числовом эквиваленте значению FALSE соответствует число 0, а значению TRUE соответствует -1 (минус единица). Но любое значение отличное от нуля переданное в переменную типа Boolean будет конвертировано в TRUE, то есть преобразовано в минус единицу. Явно объявить переменную можно следующим способом.

Dim MyBoolVar As Boolean

Специального символа для неё я не нашёл. Для неявного объявления можно воспользоваться инструкцией DefBool. Например:

DefBool b 'переменные начинающиеся с b по умолчанию имеют тип Boolean

Начальное значение переменной устанавливается в FALSE. Для переменной типа Boolean требуется один байт памяти.

Целочисленные переменные

К целочисленным переменным относится 3 типа Byte, Integer и Long Integer. Эти переменные могут содержать только целые числа. При передаче чисел с дробной частью в такие переменные, происходит округление по правилам классической арифметики (а не в большую сторону, как написано в справке). Начальным значением для этих переменных является 0 (ноль).

Типа Byte

Переменные типа Byte могут содержать только целочисленные положительные значения в диапазоне от 0 до 255. Не путайте этот тип с физическим размером информации в байт. Слово Byte лишь указывает на размерность числа. Объявить переменную этого типа можно следующим образом:

Dim MyByteVar As Byte

Специального символа для объявления этого типа нет. Инструкции Def для этого типа тоже нет. Из-за маленькой размерности этот тип будет удобнее всего в счетчиках, значения которых не выходят за диапазон. Для переменной типа Byte требуется один байт памяти.

Тип Integer

Переменные типа Integer могут содержать целочисленные значение от -32768 до 32767. Они удобны для быстрых вычислений в целых числах и пригодны в счетчиках циклов. «%» — специальный символ объявления типа. Объявить переменную этого типа можно следующими способами:

Dim MyIntegerVar% 
Dim MyIntegerVar As Integer

Для неявного объявления можно воспользоваться инструкцией DefInt. Например:

DefInt i 'переменные начинающиеся с i по умолчанию имеют тип Integer

Для переменной типа Integer требуется два байта памяти.

Тип Long Integer

Переменные типа Long Integer могут содержать целочисленные значения от -2147483648 до 2147483647. Переменные типа Long Integer удобны в целочисленных вычислениях, когда диапазона типа Integer недостаточен для реализации алгоритма. «&» — специальный символ объявления типа. Объявить переменную этого типа можно следующими способами:

Dim MyLongVar&
Dim MyLongVar as Long

Для неявного объявления можно воспользоваться инструкцией DefLng . Например:

DefLng l 'переменные начинающиеся с l будут по умолчанию иметь тип Long

Для переменной типа Long Integer требуется четыре байта памяти.

Числа с дробной частью

Все переменные этого типа могут принимать положительные или отрицательные значения чисел с дробной частью. Начальным значением для них является 0 (ноль). Как говорилось выше, если число с дробной частью присвоено переменной способной содержать только целые числа, то LibreOffice Basic округляет число по правилам классической арифметики.

Тип Single

Переменные типа Single могут принимать положительные или отрицательные значения в диапазоне от 3.402823x10E+38 до 1.401293x10E-38. Значения переменных этого типа — это числа с плавающей точкой одинарной точности и могут иметь 7 знаков после запятой. Если объяснять на пальцах, в этом формате хранятся только 8 знаков числа (мантисса числа), а остальная часть храниться виде степени десяти (порядок числа). В отладчике Basic IDE можно видеть только 6 знаков после запятой, но это наглая ложь. Вычисления с переменными типа Single занимают больше времени, чем для переменных типа Integer, но выполняются быстрее, чем вычисления с переменными типа Double. Специальным символом объявления типа является «!«. Объявить переменную этого типа можно следующими способами:

Dim MySingleVar!
Dim MySingleVar as Single

Для неявного объявления можно воспользоваться инструкцией DefSng . Например:

DefSng f 'переменные начинающиеся с f по умолчанию имеют тип  Single

Для переменной типа Single требуется 4 байта памяти.

Тип Double

Переменные типа Double могут принимать положительные или отрицательные значения в диапазоне от 1.79769313486231598x10E308 до 1.0x10E-307. Почему такой странный диапазон? Скорее всего в интерпретаторе есть дополнительные проверки, которые приводят к такой странной ситуации. Значения переменных типа Double — это числа с плавающей точкой двойной точности и могут иметь 15 знаков после запятой. В отладчике Basic IDE можно видеть только 14 знаков после запятой, но это тоже наглая ложь. Переменные типа Double пригодны для точных вычислений. Вычисления требуют больше времени, чем вычисления для типа Single. Специальным символом объявления типа является «#«. Объявить переменную этого типа можно следующими способами:

Dim MyDoubleVar#
Dim MyDoubleVar As Double

Для неявного объявления можно воспользоваться инструкцией DefDbl . Например:

DefDbl d 'переменные начинающиеся с d по умолчанию имеют тип  Double

Для переменной типа Double требуется 8 байта памяти.

Тип Currency

Переменные типа Currency отображаются как числа с фиксированной точкой и имеют 15 знаков в целой части и 4 знака в дробной. Диапазон значений включает числа от -922337203685477.6874 до +922337203685477.6874. Переменные типа Currency предназначены для точных расчетов денежных значений. Специальным символом описания типа является «@«. Объявить переменную этого типа можно следующими способами:

Dim MyCurrencyVar@
Dim MyCurrencyVar As Currency

Для неявного объявления можно воспользоваться инструкцией DefCur . Например:

DefCur c 'переменные начинающиеся с c по умолчанию имеют тип Currency

Для переменной типа Currency требуется 8 байт памяти.

Строковые переменные — тип String

Переменные типа String могут содержать строки , в которых каждый не более 65535 символов. Каждый символ хранится как соответствующее значение Юникод. Они используются для работы с текстовой информацией и, кроме печатных знаков (символов), могут также содержать непечатаемые знаки. О максимальном размере строки я не знаю. Mike Kaganski экспериментальным образом установил значение в 2147483638 символа, после чего LibreOffice падает. Это соответствует почти 4 Гигабайтам символов.Специальным символом описания типа является «$«. Объявить переменную этого типа можно следующими способами:

DimMyStringVar$
Dim MyStringVar As String

Для неявного объявления можно воспользоваться инструкцией DefStr . Например:

DefStr s 'переменные начинающиеся с s по умолчанию имеют тип String

Начальное значение этих переменных пустая строка («»). Память, требуемая для хранения строковых переменных, зависит от числа символов в переменной.

Даты и время — типа Date

Переменные типа Date могут содержать только значения даты и времени, сохраненные во внутреннем формате. Этот внутренний формат является по факту числом с плавающей точкой двойной точности Double, где целая часть это количество дней, а дробная часть дня (то есть, 0.00001157407 — это одна секунда). При этом значение 0 равно 30.12.1899. Но интерпретатор Basic автоматически конвертирует его в читабельный вариант при выводе, но не при вводе. Для правильного и быстрого преобразования во внутренний формат типа Date можно использовать функции Dateserial, Datevalue, Timeserial или Timevalue. Извлечь какую-нибудь определённую часть из переменной в формате Date можно с помощью функции Day, Month, Year или Hour, Minute, Second. Внутренний формат позволяет сравнивать значения даты и времени путем расчета разности двух чисел. Для типа Date нет специального символа для определения, поэтому при явном определении нужно использовать ключевое слово Date.

Dim MyDateVar As Date

Для неявного объявления можно воспользоваться инструкцией DefDate . Например:

DefDate y 'переменные начинающиеся с y по умолчанию имеют тип Date

Для переменной типа Date требуется 8 байта памяти.

Тип переменных Object

Условно к объектам в LibreOffice Basic можно отнести два типа переменных.

Объекты

Переменные типа Object являются переменными хранящими объекты. Если не вдаваться в подробности, то объектом считается любая обособленная часть программы имеющая структуру, свойства и методы доступа и обработки данных. Например, документ, ячейка, параграф, диалоговые окна — это объекты. Они имеют имя, размер, свойства, и методы их задания. В свою очередь, эти объекты состоят тоже из объектов, которые в свою очередь тоже могут состоять из объектов. Такая пирамида объектов часто называется объектной моделью, и она позволяет, разрабатывая маленькие объекты, объединять их в большие. В свою очередь, через больший объект, мы имеем доступ к более мелким. И это позволяет нам оперировать нашими документами, заниматься созданием и обработкой их, при этом абстрагировавшись от конкретного документа. Для типа Object нет специального символа для определения, поэтому при явном определении нужно использовать ключевое слово Object.

Dim MyObjectVar As Object

Для неявного объявления можно воспользоваться инструкцией DefObj . Например:

DefObj o 'переменные начинающиеся с o по умолчанию имеют тип Object

Переменная типа Object не хранит в себе сам объект, а является только ссылкой на него. Начальное значение для этого типа переменных Null.

Структуры

Структура по сути тоже объект. И если вы будете смотреть в отладчике Basic IDE, то у большинства из них вы увидите тип Object. Не у всех. У некоторых, например, как у структуры Error будет тип Error, а не Object. Но грубо говоря структуры в LibreOffice Basic это просто сгруппированные в один объект переменные, без специальных методов доступа. Ещё одним существенным отличием является то, что при объявлении переменной типа «структура» мы должны указывать её имя, а не служебное слово Object. Например, если MyNewStructure это имя структуры, то объявление её переменной будет выглядеть как:

Dim MyStructureVar As MyNewStructure

Существует довольно большое количество встроенных структур. Но пользователь может создавать и свои личные. Структуры могут быть удобны в тех случаях когда нам нужно оперировать наборами разнородной информации, которые должны рассматриваться как единое целое. Например, имя, фамилия и отчество человека. В этом случае мы могли бы, например, создать структуру tPerson.

Type tPerson
  Name As String
  Age As Integer
  Weight As Double
End Type

Определение структуры должно идти до подпрограмм и функций её использующих.

Чтобы заполнить структуру можно воспользоваться следующим способом. Для примера, встроенная структура com.sun.star.beans.PropertyValue:

Dim oProp As New
 com.sun.star.beans.PropertyValue
 oProp.Name  = "Age"  'Устанавливаем свойство Name'
 oProp.Value = "Amy Boyer" 'Устанавливаем свойство Property'

Для более простого заполнения структуры, можно использовать оператор With.

Dim oProp As New com.sun.star.beans.PropertyValue
 With oProp
   .Name  = "Age"       'Устанавливаем свойство Name'
   .Value = "Amy Boyer" 'Устанавливаем свойство Property'
 End With

Начальное значение есть только для каждой переменной в структуре и соответствует типу переменной.

Тип переменных Variant

Это виртуальный тип переменных. Тип переменной автоматически подбирается под данные, которыми нужно оперировать. Проблема лишь в том, что для интерпретатора не стоит цели экономить наши ресурсы, и он предлагает не самые оптимальные варианты типов переменных. Например, он не знает что единицу можно записать в Byte, а 100000 в Long Integer, хотя воспроизводит тип, если значение передается из другой переменной с объявленным типом. И кроме того, само преобразование довольно ресурсозатратное. Поэтому этот тип переменных самый медленный из всех. Если необходимо объявить этот вид переменных, можно воспользоваться ключевым словом Variant. Но можно опустить описание типа вовсе, типа Variant будет присвоен автоматически. Специального знака для этого типа нет.

Dim MyVariantVar
Dim MyVariantVar As Variant

Для неявного объявления можно воспользоваться инструкцией DefVar . Например:

DefVar v 'переменные начинающиеся с v по умолчанию имеют тип Variant

Этот тип переменных присваивается по умолчанию всем не объявленным переменным.

Массивы

Массивы — это особый тип переменных в виде набора данных больше напоминающий математическую матрицу, за исключением того, что данные могут быть различного типа, и позволяющие обращаться к своим элементам по индексу (номеру элемента). Конечно, одномерный массив будет подобен столбцу или стрке, а двухмерный таблице. Есть одна особенность массивов в LibreOffice Basic, отличающая его от других языков программирования. Так как у нас есть абстрактный тип Variant, то элементы массива, не обязаны быть однородными. То есть, если у нас есть массив Array с тремя элементами под номерами от 0 до 2, и мы в первый элемент Array(0) записываем имя, во второй Array(1) возраст, а в третий Array(2) вес человека, то можем иметь соответственно значения типов для Array(0) String, для Array(1) Integer, а для Array(2) Double. В этом случае массив будет напоминать структуру с возможностью доступа к элементу по его индексу. Элементы массива также могут быть однородными, другими массивами, объектами, структурами, строками, или любым другим типом данных используемым в языке LibreOffice Basic.

Массивы обязательно должны быть объявлены. Хотя пространство индексов может быть в диапазоне типа Integer, то есть от -32768 до 32767, по умолчанию начальный индекс выбирается как 0. Объявить массив можно несколькими способами:

Dim MyArrayVar(5) as String         'Массив строк с 6 элементами от 0 до 5'
Dim MyArrayVar$(5)                  'тоже самое что и предыдущий вариант'
Dim MyArrayVar(1 To 5) As String    'Массив строк с 5 элементами от 1 до 5'
Dim MyArrayVar(5,5) As String       'двухмерный массив строк с 36 элементами'
                                    'с индексами в каждом уровне от 0 до 5'
Dim MyArrayVar$(-4 To 5, -4 To 5)   'двухмерный массив строк со 100'
                                    'элементами с индексами в каждом уровне'
                                    'от -4 до 5'
Dim MyArrayVar()                    'пустой массив типа Variant'

Изменить нижнюю границу (индекс первого элемента массива) по умолчанию можно при помощи ключевых слов Option Base, которые должны быть указаны до использования подпрограмм, функций и определения пользовательский структур. Option Base может принимать только два значения 0 или 1, которые должны следовать сразу после ключевых слов. Действие распространяется только на текущий модуль.

Дополнительная литература и источники:

How to start writing macros in LibreOffice Basic

I have long promised to write about the scripting language Basic and creating macros in LibreOffice. This article is devoted to the types of data used in LibreOffice Basic, and to a greater extent, descriptions of variables and the rules for using them. I will try to provide enough information for advanced as well as novice users.

(And, I would like to thank everyone who commented on and offered recommendations on the Russian article, especially those who helped answer difficult questions.)

Variable naming conventions

Variable names cannot contain more than 255 characters. They should start with either upper- or lower-case letters of the Latin alphabet, and they can include underscores («_») and numerals. Other punctuation or characters from non-Latin alphabets can cause a syntax error or a BASIC runtime error if names are not put within square brackets.

Here are some examples of correct variable names:

MyNumber=5

MyNumber5=15

MyNumber_5=20

_MyNumber=96

[My Number]=20.5

[5MyNumber]=12

[Number,Mine]=12

[DéjàVu]="It seems that I have seen it!"

[Моя переменная]="The first has went!"

[Мой % от зделки]=0.0001

Note: In examples that contain square brackets, if you remove the brackets, macros will show a window with an error. As you can see, you can use localized variable names. Whether it makes sense to do so is up to you.

Declaring variables

Strictly speaking, it is not necessary to declare variables in LibreOffice Basic (except for arrays). If you write a macro from a pair of lines to work with small documents, you don’t need to declare variables, as the variable will automatically be declared as the variant type. For longer macros or those that will work in large documents, it is strongly recommended that you declare variables. First, it increases the readability of the text. Second, it allows you to control variables that can greatly facilitate the search for errors. Third, the variant type is very resource-intensive, and considerable time is needed for the hidden conversion. In addition, the variant type does not choose the optimal variable type for data, which increases the workload of computer resources.

Basic can automatically assign a variable type by its prefix (the first letter in the name) to simplify the work if you prefer to use the Hungarian notation. For this, the statement DefXXX is used; XXX is the letter type designation. A statement with a letter will work in the module, and it must be specified before subprograms and functions appear. There are 11 types:

DefBool - for boolean variables;
DefInt - for integer variables of type Integer;
DefLng - for integer variables of type Long Integer;
DefSng - for variables with a single-precision floating point;
DefDbl - for variables with double-precision floating-point type Double;
DefCur - for variables with a fixed point of type Currency;
DefStr - for string variables;
DefDate - for date and time variables;
DefVar - for variables of Variant type;
DefObj - for object variables;
DefErr - for object variables containing error information.

If you already have an idea of the types of variables in LibreOffice Basic, you probably noticed that there is no Byte type in this list, but there is a strange beast with the Error type. Unfortunately, you just need to remember this; I have not yet discovered why this is true. This method is convenient because the type is assigned to the variables automatically. But it does not allow you to find errors related to typos in variable names. In addition, it will not be possible to specify non-Latin letters; that is, all names of variables in square brackets that need to be declared must be declared explicitly.

To avoid typos when using declared variables explicitly, you can use the statement OPTION EXPLICIT. This statement should be the first line of code in the module. All other commands, except comments, should be placed after it. This statement tells the interpreter that all variables must be declared explicitly; otherwise, it produces an error. Naturally, this statement makes it meaningless to use the Def statement in the code.

A variable is declared using the statement Dim. You can declare several variables simultaneously, even different types, if you separate their names with commas. To determine the type of a variable with an explicit declaration, you can use either a corresponding keyword or a type-declaration sign after the name. If a type-declaration sign or a keyword is not used after the variable, then the Variant type is automatically assigned to it. For example:

Dim iMyVar                      'variable of Variant type
Dim iMyVar1 As Integer, iMyVar2 As Integer 'in both cases Integer type
Dim iMyVar3, iMyVar4 As Integer 'in this case the first variable
                                'is Variant, and the second is Integer

Variable types

LibreOffice Basic supports seven classes of variables:

  • Logical variables containing one of the values: TRUE or FALSE
  • Numeric variables containing numeric values. They can be integer, integer-positive, floating-point, and fixed-point
  • String variables containing character strings
  • Date variables can contain a date and/or time in the internal format
  • Object variables can contain objects of different types and structures
  • Arrays
  • Abstract type Variant

Logical variables – Boolean

Variables of the Boolean type can contain only one of two values: TRUE or FALSE. In the numerical equivalent, the value FALSE corresponds to the number 0, and the value TRUE corresponds to -1 (minus one). Any value other than zero passed to a variable of the Boolean type will be converted to TRUE; that is, converted to a minus one. You can explicitly declare a variable in the following way:

Dim MyBoolVar As Boolean

I did not find a special symbol for it. For an implicit declaration, you can use the DefBool statement. For example:

DefBool b 'variables beginning with b by default are the type Boolean

The initial value of the variable is set to FALSE. A Boolean variable requires one byte of memory.

Integer variables

There are three types of integer variables: Byte, Integer, and Long Integer. These variables can only contain integers. When you transfer numbers with a fraction into such variables, they are rounded according to the rules of classical arithmetic (not to the larger side, as it stated in the help section). The initial value for these variables is 0 (zero).

Byte

Variables of the Byte type can contain only integer-positive values in the range from 0 to 255. Do not confuse this type with the physical size of information in bytes. Although we can write down a hexadecimal number to a variable, the word «Byte» indicates only the dimensionality of the number. You can declare a variable of this type as follows:

Dim MyByteVar As Byte

There is no a type-declaration sign for this type. There is no the statement Def of this type. Because of its small dimension, this type will be most convenient for a loop index, the values of which do not go beyond the range. A Byte variable requires one byte of memory.

Integer

Variables of the Integer type can contain integer values from -32768 to 32767. They are convenient for fast calculations in integers and are suitable for a loop index. % is a type-declaration sign. You can declare a variable of this type in the following ways:

Dim MyIntegerVar%
Dim MyIntegerVar As Integer

For an implicit declaration, you can use the DefInt statement. For example:

DefInt i 'variables starting with i by default have type Integer

An Integer variable requires two bytes of memory.

Long integer

Variables of the Long Integer type can contain integer values from -2147483648 to 2147483647. Long Integer variables are convenient in integer calculations when the range of type Integer is insufficient for the implementation of the algorithm. & is a type-declaration sign. You can declare a variable of this type in the following ways:

Dim MyLongVar&
Dim MyLongVar As Long

For an implicit declaration, you can use the DefLng statement. For example:

DefLng l 'variables starting with l have Long by default

A Long Integer variable requires four bytes of memory.

Numbers with a fraction

All variables of these types can take positive or negative values of numbers with a fraction. The initial value for them is 0 (zero). As mentioned above, if a number with a fraction is assigned to a variable capable of containing only integers, LibreOffice Basic rounds the number according to the rules of classical arithmetic.

Single

Single variables can take positive or negative values in the range from 3.402823x10E+38 to 1.401293x10E-38. Values of variables of this type are in single-precision floating-point format. In this format, only eight numeric characters are stored, and the rest is stored as a power of ten (the number order). In the Basic IDE debugger, you can see only 6 decimal places, but this is a blatant lie. Computations with variables of the Single type take longer than Integer variables, but they are faster than computations with variables of the Double type. A type-declaration sign is !. You can declare a variable of this type in the following ways:

Dim MySingleVar!
Dim MySingleVar As Single

For an implicit declaration, you can use the DefSng statement. For example:

DefSng f 'variables starting with f have the Single type by default

A single variable requires four bytes of memory.

Double

Variables of the Double type can take positive or negative values in the range from 1.79769313486231598x10E308 to 1.0x10E-307. Why such a strange range? Most likely in the interpreter, there are additional checks that lead to this situation. Values of variables of the Double type are in double-precision floating-point format and can have 15 decimal places. In the Basic IDE debugger, you can see only 14 decimal places, but this is also a blatant lie. Variables of the Double type are suitable for precise calculations. Calculations require more time than the Single type. A type-declaration sign is #. You can declare a variable of this type in the following ways:

Dim MyDoubleVar#
Dim MyDoubleVar As Double

For an implicit declaration, you can use the DefDbl statement. For example:

DefDbl d 'variables beginning with d have the type Double by default

A variable of the Double type requires 8 bytes of memory.

Currency

Variables of the Currency type are displayed as numbers with a fixed point and have 15 signs in the integral part of a number and 4 signs in fractional. The range of values includes numbers from -922337203685477.6874 to +92337203685477.6874. Variables of the Currency type are intended for exact calculations of monetary values. A type-declaration sign is @. You can declare a variable of this type in the following ways:

Dim MyCurrencyVar@
Dim MyCurrencyVar As Currency

For an implicit declaration, you can use the DefCur statement. For example:

DefCur c 'variables beginning with c have the type Currency by default

A Currency variable requires 8 bytes of memory.

String

Variables of the String type can contain strings in which each character is stored as the corresponding Unicode value. They are used to work with textual information, and in addition to printed characters (symbols), they can also contain non-printable characters. I do not know the maximum size of the line. Mike Kaganski experimentally set the value to 2147483638 characters, after which LibreOffice falls. This corresponds to almost 4 gigabytes of characters. A type-declaration sign is $. You can declare a variable of this type in the following ways:

Dim MyStringVar$
Dim MyStringVar As String

For an implicit declaration, you can use the DefStr statement. For example:

DefStr s 'variables starting with s have the String type by default

The initial value of these variables is an empty string («»). The memory required to store string variables depends on the number of characters in the variable.

Date

Variables of the Date type can contain only date and time values stored in the internal format. In fact, this internal format is the double-precision floating-point format (Double), where the integer part is the number of days, and the fractional is part of the day (that is, 0.00001157407 is one second). The value 0 is equal to 30.12.1899. The Basic interpreter automatically converts it to a readable version when outputting, but not when loading. You can use the Dateserial, Datevalue, Timeserial, or Timevalue functions to quickly convert to the internal format of the Date type. To extract a certain part from a variable in the Date format, you can use the Day, Month, Year, Hour, Minute, or Second functions. The internal format allows us to compare the date and time values by calculating the difference between two numbers. There is no a type-declaration sing for the Date type, so if you explicitly define it, you need to use the Date keyword.

Dim MyDateVar As Date

For an implicit declaration, you can use the DefDate statement. For example:

DefDate y 'variables starting with y have the Date type by default

A Date variable requires 8 bytes of memory.

Types of object variables

We can take two variables types of LibreOffice Basic to Objects.

Objects

Variables of the Object type are variables that store objects. In general, the object is any isolated part of the program that has the structure, properties, and methods of access and data processing. For example, a document, a cell, a paragraph, and dialog boxes are objects. They have a name, size, properties, and methods. In turn, these objects also consist of objects, which in turn can also consist of objects. Such a «pyramid» of objects is often called an object model, and it allows us, when developing small objects, to combine them into larger ones. Through a larger object, we have access to smaller ones. This allows us to operate with our documents, to create and process them while abstracting from a specific document. There is no a type-declaration sing for the Object type, so for an explicit definition, you need to use the Object keyword.

Dim MyObjectVar As Object

For an implicit declaration, you can use the DefObj statement. For example:

DefObj o 'variables beginning with o have the type Object by default

The variable of type Object does not store in itself an object but is only a reference to it. The initial value for this type of variables is Null.

Structures

The structure is essentially an object. If you look in the Basic IDE debugger, most (but not all) are the Object type. Some are not; for example, the structure of the Error has the type Error. But roughly speaking, the structures in LibreOffice Basic are simply grouped into one object variable, without special access methods. Another significant difference is that when declaring a variable of the Structure type, we must specify its name, rather than the Object. For example, if MyNewStructure is the name of a structure, the declaration of its variable will look like this:

Dim MyStructureVar As MyNewStructure

There are a lot of built-in structures, but the user can create personal ones. Structures can be convenient when we need to operate with sets of heterogeneous information that should be treated as a single whole. For example, to create a tPerson structure:

Type tPerson
  Name As String
  Age As Integer
  Weight As Double
End Type

The definition of the structure should go before subroutines and functions that use it.

To fill a structure, you can use, for example, the built-in structure com.sun.star.beans.PropertyValue:

Dim oProp As New com.sun.star.beans.PropertyValue
OProp.Name = "Age" 'Set the Name
OProp.Value = "Amy Boyer" 'Set the Property

For a simpler filling of the structure, you can use the With operator.

Dim oProp As New com.sun.star.beans.PropertyValue
With oProp
  .Name = "Age" 'Set the Name
  .Value = "Amy Boyer" 'Set the Property
End With

The initial value is only for each variable in the structure and corresponds to the type of the variable.

Variant

This is a virtual type of variables. The Variant type is automatically selected for the data to be operated on. The only problem is that the interpreter does not need to save our resources, and it does not offer the most optimal variants of variable types. For example, it does not know that 1 can be written in Byte, and 100000 in Long Integer, although it reproduces a type if the value is passed from another variable with the declared type. Also, the transformation itself is quite resource-intensive. Therefore, this type of variable is the slowest of all. If you need to declare this kind of variable, you can use the Variant keyword. But you can omit the type description altogether; the Variant type will be assigned automatically. There is no a type-declaration sign for this type.

Dim MyVariantVar
Dim MyVariantVar As Variant

For an implicit declaration, you can use the DefVar statement. For example:

DefVar v 'variables starting with v have the Variant type by default

This variables type is assigned by default to all undeclared variables.

Arrays

Arrays are a special type of variable in the form of a data set, reminiscent of a mathematical matrix, except that the data can be of different types and allow one to access its elements by index (element number). Of course, a one-dimensional array will be similar to a column or row, and a two-dimensional array will be like a table. There is one feature of arrays in LibreOffice Basic that distinguishes it from other programming languages. Since we have an abstract type of variant, then the elements of the array do not need to be homogeneous. That is, if there is an array MyArray and it has three elements numbered from 0 to 2, and we write the name in the first element of MyArray(0), the age in the second MyArray(1), and the weight in the third MyArray(2), we can have, respectively, the following type values: String for MyArray(0), Integer for MyArray(1), and Double for MyArray(2). In this case, the array will resemble a structure with the ability to access the element by its index. Array elements can also be homogeneous: Other arrays, objects, structures, strings, or any other data type can be used in LibreOffice Basic.

Arrays must be declared before they are used. Although the index space can be in the range of type Integer—from -32768 to 32767—by default, the initial index is selected as 0. You can declare an array in several ways:

Dim MyArrayVar(5) as stringString array with 6 elements from 0 to 5
Dim MyArrayVar$(5)Same as the previous
Dim MyArrayVar(1 To 5) as stringString array with 5 elements from 1 to 5
Dim MyArrayVar(5,5) as stringTwo-dimensional array of rows with 36 elements with indexes in each level
from 0 to 5
Dim MyArrayVar$(-4 To 5, -4 To 5)Two-dimensional strings array with 100 elements with indexes in each level
from -4 to 5
Dim MyArrayVar()Empty array of the Variant type

You can change the lower bound of an array (the index of the first element of the array) by default using the Option Base statement; that must be specified before using subprograms, functions, and defining user structures. Option Base can take only two values, 0 or 1, which must follow immediately after the keywords. The action applies only to the current module.

Learn more

If you are just starting out in programming, Wikipedia provides general information about the array, structure, and many other topics.

For a more in-depth study of LibreOffice Basic, Andrew Pitonyak’s website is a top resource, as is the Basic Programmer’s guide. You can also use the LibreOffice online help. Completed popular macros can be found in the Macros section of The Document Foundation’s wiki, where you can also find additional links on the topic.

For more tips, or to ask questions, visit Ask LibreOffice and OpenOffice forum.

LibreOffice | Русскоязычная документация по Ubuntu

LibreOffice — свободный, независимый пакет офисных программ с открытым исходным кодом, разрабатываемый The Document Foundation.

Пакет программ Libre Office с 2010 года является ответвлением от пакета OpenOffice.org. Причина создания отдельной и независимой ветки: несогласие с жёсткой и навязываемой политикой Oracle — владельца, унаследовавшего пакет Open Office от компании Sun. Затем пакеты разрабытывались независимо. В 2011 году компания Oracle отказалась от разработки OpenOffice и передала Open Office фонду Apache. После чего началась работа по налаживанию возможности передачи друг другу наработок обоих проектов, перелицензированию кода.

В 2012 году компания IBM подключилась к разработке, в свою очередь передав фонду Apache свои наработки — офисный пакет Lotus Symphony (URL). Вместе с этим, компания Canonical, наряду с другими, отказалась от Open Office, от включения пакета в состав дистрибутива Ubuntu, заменив пакет на Libre Office.

Libre Office является офисным пакетом по умолчанию в Ubuntu начиная с версии 11.04 Oneiric Ocelot.

Не рекомендуется устанавливать LibreOffice из .deb-файлов.

Установка из репозитория даёт возможность автообновления и интеграции в рабочую среду.

Apache OpenOffice и LibreOffice не могут быть установлены одновременно.

Устанавливая LibreOffice по этой инструкции, вы автоматически и безопасно удалите OpenOffice.org.

Текущее состояние пакетов LibreOffice в Ubuntu можно отслеживать подписавшись на рассылку в трекере.

Начиная с Ubuntu 11.04 LibreOffice является неотъемлемой частью Ubuntu и уже установлен по умолчанию.

Для Ubuntu 10.04 LTS и 10.10 необходимо воспользоваться персональным источником пакетов LibreOffice (PPA). Хоть и не рекомендуется использовать сторонние источники приложений, но с апреля 2011 года источник LibreOffice признан содержащим официальные версии. Перед внедрением в производственных целях, удостоверьтесь в корректности работы пакета на Ubuntu 10.04 LTS или 10.10.

  1. Откройте менеджер источников Система → Администрирование → Источники приложений.

  2. В «Центре приложений Ubuntu» (меню Приложения → Центр приложений Ubuntu) найдите LibreOffice через поиск.

  3. Нажмите кнопку «Установить» и введите свой пароль.

Сделаем LibreOffice доступным для установки:

  1. Откройте терминал Приложения → Стандартные → Терминал.

  2. Добавьте источник в систему и обновите список пакетов, выполнив в терминале следующую команду:

    sudo add-apt-repository ppa:libreoffice/ppa && sudo apt-get update

Выборочная установка

Для того чтобы выборочно установить LibreOffice, можно воспользоваться следующими мета-пакетами:

  • libreoffice-writer — текстовый редактор

  • libreoffice-calc — табличный редактор

  • libreoffice-impress — презентации

  • libreoffice-draw — рисование

  • libreoffice-base — базы данных

  • libreoffice-math — редактор формул

  • libreoffice-filter-mobiledev — фильтр для мобильных устройств

  • libreoffice-filter-binfilter — старые фильтры (еще со времён StarOffice 5.2)

Полная установка

Для установки всех компонентов LibreOffice:

  1. Установите мета-пакет LibreOffice командой:

    sudo apt-get install libreoffice
  2. Завершите установку интеграцией с Ubuntu (Gnome):

    sudo apt-get install libreoffice-gnome

    или, если используете Kubuntu (KDE):

    sudo apt-get install libreoffice-kde

Дополнительно можно установить модули локализации, справку и расширения. Перечень доступных модулей можно увидеть, выполнив поиск в менеджере пакетов. Например, чтобы найти модули справки, выполните в терминале:

apt-cache search libreoffice-help

Перечень доступных расширений:

  • libreoffice-help-ru — файлы справки

  • libreoffice-l10n-ru — файлы локализации (переводы)

  • libreoffice-pdfimport — расширение для импорта PDF-документов
  • libreoffice-presentation-minimizer — расширение для сжатия презентаций

  • libreoffice-presenter-console — расширение LibreOffice Презентации для отдельной консоли ведущего

  • libreoffice-report-builder-bin — расширение для создания базы отчётов – библиотека

  • mozilla-libreoffice — офисный пакет программ для повышения производительности — модуль Mozilla

  • lo-menubar — поддержка глобального меню (только для Ubuntu 11.04 и более новых)

Глобальное меню

По умолчанию в LibreOffice включено собственное меню, не использующее возможности Unity. Для включения глобального эргономичного меню LibreOffice в верхней панели Unity необходимо установить дополнительный пакет lo-menubar:

sudo apt-get install lo-menubar

Перезагрузите LibreOffice. Для возврата меню в предыдущее состояние удалите установленный пакет.

В настоящий момент после установки lo-menubar могут наблюдаться проблемы, описанные в этом баге и проявляющиеся как аварийное закрытие LibreOffice при выборе ФайлПредварительный просмотр страницы.

Проверка правописания, расстановка переносов и словари

Чтобы установить надлежащую поддержку языка, нужно установить соответствующий пакет. Название пакета будет строиться следующим образом: к 'language-support-writing-‘ добавляется нужный язык по спецификации ISO 639-11).

Например, для проверки правописания русского, украинского и английского языков нужно установить следующие пакеты:

  • language-support-writing-ru

  • language-support-writing-uk

  • language-support-writing-en

Быстрый способ

  1. Откройте Менеджер пакетов Synaptic в Система → Администрирование.

  2. Убедитесь в свежести списка пакетов нажатием на кнопку Обновить.

  3. Найдите openoffice.org и пометьте для установки нужные пакеты.

  4. Закрепите изменения нажатием кнопки Применить. Менеджер пакетов предупредит, что нужно будет удалить LibreOffice. Соглашаемся.

  5. Удалите источник пакетов LibreOffice, удалив или сняв соответствующую отметку в менеджере пакетов Synaptic (Система → Репозитории → Прочее ПО).

Гарантированное удаление

  1. Откройте Менеджер пакетов Synaptic в Система → Администрирование.

  2. Убедитесь в свежести списка пакетов нажатием на кнопку Обновить.

  3. В строке поиска введите libreoffice.

  4. Выберите все пакеты и пометьте их на полное удаление — выделить все пакеты можно выбрав один пакет, а затем нажав кнопки Ctrl+A.

  5. Нажмите Применить и следуйте подсказкам.

  6. Удалите источник пакетов LibreOffice, удалив или сняв соответствующую отметку в менеджере пакетов Synaptic (Система → Репозитории → Прочее ПО).

  7. Кнопкой Обновить повторно перечитайте список пакетов.

  8. Теперь найдите openoffice.org и пометьте для установки нужные пакеты.

  9. Закрепите изменения нажатием кнопки Применить.

Некоторые онлайн-руководства советуют использовать Пометку для полного удаления. Это не обязательно, так как LibreOffice и OpenOffice.org хранят свои файлы конфигураций в разных каталогах (~/.libreoffice2) и ~.openoffice.org соответственно).

Что лучше Libreoffice или Microsoft Office

Программные продукты LibreOffice и Microsoft Offcie — это всемирно известные офисные пакеты. Первый из них является полностью свободным и бесплатным, второй же — платная программа корпоративного уровня, которая является условным стандартом для ведения документов и различной отчетности.

Обе программы имеют длинную историю развития и почти одинаковы за предназначением. В операционной системе Linux может полноценно работать только Libreoffice, но действительно ли это так плохо? Чем Microsoft Office лучше? В этой статье мы попытаемся выполнить сравнение этих двух продуктов, а также выяснить что лучше Libreoffice или Microsoft Office. Сравнивать, как полагается, мы будем по категориях.

Содержание статьи:

1. История развития

Первый выпуск LibreOffice состоялся в 2001 году. Тогда программный пакет развивался компанией Sun Microsystems и назывался OpenOffice. С самого начала программа распространялась под открытой лицензией GPL и была полностью свободна. Ее код был основан на проекте StarOffice. Затем, Sun была куплена Oracle, а большинство разработчиков основали некоммерческую организацию The Document Foundation, которая занялась разработкой форка OpenOffice — LibreOffice.

Microsoft Office начал развиваться гораздо раньше. Первую версию компания Microsoft выпустила в 1990 году. Над программой работали профессиональные программисты и новые версии выходили почти каждый год. Поэтому сложилась ситуация, когда при первом релизе LibreOffice (тогда OpenOffice) продукт от Microsoft опережал его почти на 10 лет.

2. Разработка и координация

Как уже было сказано, координацией разработки LibreOffice сейчас занимается некоммерческая организация The Document Foundation. Изначально в TDF входили только Google, SUSE, Red Hat и FSF, но позже присоединились и другие организации, например Intel и AMD. Над разработкой продукта работают, в основном, энтузиасты, но многие компании выделяют ресурсы разработчиков для развития проекта. Раньше много разработчиков выделяла SUSE, за ней Red Hat и Canonical. В среднем, над проектом работают 300 активных разработчиков, но этого все еще недостаточно для очень быстрого развития.

Microsoft Office контролируется одной компанией. Все разработчики наняты на полный рабочий день и отдают все силы этому проекту. Благодаря этому Microsoft Office развивается намного быстрее, чем LibreOffice.

3. Состав пакетов

Каждый офисный пакет содержит все необходимые программы для редактирования документов. В состав Microsoft Office входят:

  • Word — текстовый процессор для работы с документами;
  • Excel — программа для работы с электронными таблицами;
  • PowerPoint — программа для создания презентаций;
  • Outlook — управление персональной информацией и почтой;
  • Access — работа с базами данных;
  • Binder — управление подшивками;
  • FrontPage — создание веб-страниц;
  • PhotoDraw — графический редактор;
  • Publisher — программа для работы с визитками, буклетами и другими публикациями;
  • Project — управление проектами.

LibreOffice имеет следующий комплект:

  • Writer — для редактирования текстовых документов;
  • Calc — для редактирования электронных таблиц;
  • Base — для управления базами данных;
  • Draw — редактирование векторных изображений;
  • Math — работа с математическими формулами;
  • Impress — программа для создания презентаций.

Как вы можете заметить в LibreOffice недостает некоторых программ, например, почтового клиента, графического редактора и т д. Но это не проблема, поскольку существует множество таких программ с открытым кодом, которые вы можете использовать. Например, тот же Thenderbird, Gimp, Krita.

4. Функциональность

Одно из важных отличий LibreOffice vs Microsoft Office — это отличия в функциональности. За столько лет развития LibreOffice во многом догнал Microsoft, так что обычные пользователи, возможно, и не заметят недостатков, но все же они есть.

В текстовом редакторе Libreoffice нельзя отметить текст левой кнопкой мыши, кликнув напротив рядка, поддержки разделов для разграничивания форматирования вообще нет, настройка размера полей на линейке не прилипает к делениям из-за чего может быть сложно выбрать правильный размер. Вставка изображений в колонтитул работает некорректно, не поддерживается вставка короткого и длинного тире с помощью сочетаний клавиш.

В Writer отклонения незначительные и в принципе, с ними мириться можно, в Calc тоже есть несколько проблем: не поддерживаются макросы MS Office, переместить одну ячейку нельзя, не поддерживается умное автозаполнение ячеек по правой кнопке, название функций только на английском, к тому же вы не можете использовать функцию из макроса. Самый значительный недостаток всех программ пакета в том, что если вы откроете в них документ Microsoft Office, то он может выглядеть совсем по другому.

Из плюсов LibreOffice можно отметить поддержку расширений, с помощью которых можно очень сильно улучшить работоспособность программы. MS Office поддерживает только программирование на Basic, тогда, как LibreOffice позволяет использовать Basic, JavaScript, BeanShell и Python, также поддерживается возможность синхронизации документов с облачными хранилищами, такими как Google Drive, OneDrive и так далее. LibreOffice лучше поддерживает работу с большими документами, а также другие возможности.

Из всего выше перечисленного можно сделать вывод, что несмотря на свои недостатки LibreOffice полностью пригоден для использования. А в некоторых случаях, даже оказывается, что LibreOffice лучше MS Office.

5. Интерфейс

Это самое основное отличие офисных пакетов Microsoft Office и LibreOffice, которое мешает многим пользователям перейти к использованию свободного пакета. Интерфейс LibreOffice выглядит очень старомодно, иконки слишком просты, пункты меню находятся не на привычных местах. Libreoffice пытается догнать Microsoft Office, в версии 5.3 был добавлен ленточный интерфейс, но программе все еще далеко до оригинала в плане интерфейса.

Интерфейс Microsoft Office стал стандартом для офисных программ. К такому интерфейсу привыкли большинство пользователей. Даже когда Microsoft поменял стандарты интерфейса в Microsoft Office 2010, многие не захотели переходить на новую версию.

6. Платформы

В плане поддерживаемых платформ сравнение libreoffice и microsoft office, явно на стороне первого. LibreOffice полностью поддерживает Windows, Linux, MacOS, к тому же сейчас разрабатывается порт для Android. Также, недавно была выпущена версия LibreOffice Online, учитывая, что она распространяется с открытым исходным кодом, то ее можно установить на свой сервер.

Micorosoft Office имеет только версию для Windows и MacOS, а также приложение для Android. Онлайн версия MS Office имеет урезанную функциональность и доступна бесплатно на официальном сайте, но вы не можете развернуть ее в своей инфраструктуре. Также есть платная и более полная онлайн версия Office 365.

Выводы

В этой статье мы рассмотрели основные отличия libreoffice или microsoft office. Несложно понять, что Microsoft Office сильно опережает своего конкурента по большинству параметров. Но у него есть два преимущества, это поддержка платформы Linux, а также бесплатность для использования. Очень просто понять что лучше libreoffice или microsoft office, но возможно и крупным корпорациям необходимо применять именно пакет от Microsoft, а обычным пользователям будет достаточно функциональности LibreOffice.

Видео на английском со сравнением Microsoft Office vs LibreOffice:

Оцените статью:

Загрузка…

LibreOffice: основные функции

SUM

Складывает все числа в диапазоне ячеек.

Синтаксис :

СУММ (число1; число2; … число30 )

от числа1 до числа30 — это до 30 чисел или диапазонов чисел, сумма которых должна быть вычислена.

SUM игнорирует любой текст или пустую ячейку в диапазоне или массиве.

Примеры :

СУММ (2; 3; 4)

возвращает 9, потому что 2 + 3 + 4 = 9.

СУММ (B1: B3)

(где ячейки B1, B2, B3 содержат 5, 4, 3) возвращает 12.

СУММ (B3: B4; D3: E4)

возвращает 14

СРЕДНЕЕ

Возвращает среднее значение аргументов, игнорируя текст.

Синтаксис :

СРЕДНИЙ (число1; число2; … число30)

от числа1 до числа30 — это до 30 чисел или диапазонов, содержащих числа.

Примеры :

СРЕДНЕЕ (2; 6; 4)

возвращает 4, среднее из трех чисел в списке.

СРЕДНЕЕ (B1: B3)

, где ячейки B1, B2, B3 содержат 1, 3, а яблоко возвращает 2, среднее значение 1 и 3. Текст игнорируется.

СЧЕТ

Подсчитывает числа в списке аргументов, игнорируя текстовые записи.

Синтаксис :

COUNT (значение1; значение2; … значение30)

от значения1 до значения30 — это до 30 значений или диапазонов, представляющих значения для подсчета.

Примеры :

COUNT (2; 4; 6; «восемь»)

возвращает 3, потому что 2, 4 и 6 — числа («восьмерка» — это текст).

СЧЕТ (B1: B3)

, где ячейки B1, B2, B3 содержат 1, 3, а яблоко возвращает 2.

СЧЕТ (B1: B3)

, где ячейки B1, B2, B3 пусты, возвращает 0.

МАКС

Возвращает максимум из списка аргументов, игнорируя текстовые записи.

Синтаксис :

МАКС (число1; число2; … число30)

от числа1 до числа30 — это до 30 чисел или диапазонов, содержащих числа.

Примеры :

МАКС (2; 6; 4)

возвращает 6, самое большое значение в списке.

МАКС (B1: B3)

, где ячейки B1, B2, B3 содержат 7, 4, а яблоко возвращает 7

МИН.

Возвращает минимум списка аргументов, игнорируя текстовые записи.

Синтаксис :

МИН (число1; число2; … число30)

от числа1 до числа30 — это до 30 чисел или диапазонов, содержащих числа.

Пример :

МИН (2; 6; 4)

возвращает 2, наименьшее значение в списке.

СЦЕПИТЬ

Объединяет несколько текстовых строк в одну.

Синтаксис :

СЦЕПИТЬ (текст1; текст2; … текст30)

Текст 1; Текст 2; … представляют до 30 текстовых отрывков, которые необходимо объединить в одну строку.

Оператор амперсанда и также может использоваться для объединения текста в формуле без функции.

Примеры :

СЦЕПИТЬ («ал»; «тог»; «эфир»)

возвращает всего .

«ал» и «тог» и «эфир»

также полностью возвращается.

СЦЕПИТЬ (A1; A2)

, где ячейка A1 содержит « key », а ячейка A2 содержит « board », возвращает клавиатуру.

База LibreOffice — База знаний MariaDB

LibreOffice Base — это интерфейсный инструмент RDBMS (система управления реляционными базами данных) с открытым исходным кодом для создания и управления различными базами данных.

Подготовка подключения ODBC

Во-первых, обязательно подготовьте соединитель MariaDB / ODBC, как описано в разделе «Соединитель MariaDB / ODBC».

В том числе:

  • Загрузите последнюю версию MariaDB Connector / ODBC
  • Скопируйте общую библиотеку libmaodbc.so в / usr / lib / [multi-arch]
  • Установите пакеты unixodbc, unixodbc-dev, openssh-client, odbcinst
  • Создайте файл шаблона для драйвера ODBC. Пример «MariaDB_odbc_driver_template.ini» может быть:
[Драйвер MariaDB ODBC 3.1]
Описание = Соединитель MariaDB / ODBC v.3.1
Driver = /usr/lib/x86_64-linux-gnu/libmaodbc.so
  • Установите драйвер ODBC из файла шаблона, запустив:
 $ odbcinst -i -d -f MariaDB_odbc_driver_template.ini
 

Проверьте успешную установку в файле /etc/odbcinst.ini .

  • Создайте файл шаблона для имени источника данных (DSN). Пример «MariaDB_odbc_data_source_template.ini» может быть:

MariaDBD_33_hd_hd_hd_hd_hd_d_d_d_d_d_d_d_3 .ini

Проверьте успешную установку в файле /.odbc.ini , а также с помощью утилиты isql, например:

$ isql MariaDB-сервер
+ --------------------------------------- +
| Связанный! |
| |
| sql-оператор |
| помощь [tablename] |
| бросить |
| |
+ --------------------------------------- +
SQL> показать таблицы;
+ ------------------------------------------------- ------------------------- +
| Tables_in_test |
+ ------------------------------------------------- ------------------------- +
| Авторы |
| tbl_names |
| веб-сообщения |
| веб-пользователи |
+ ------------------------------------------------- ------------------------- +
SQLRowCount возвращает 4
Выбрано 4 ряда

 

Начать с LibreOffice Base

Запустите Libreoffice Base из терминала, запустив lobase (при необходимости обязательно установите пакет libreoffice-base ).По умолчанию создается новая база данных: HSQLDB . Чтобы подключиться к работающему серверу MariaDB, выберите «Подключиться к существующей базе данных» и выберите драйвер «ODBC» , как показано ниже:

После этого выберите DSN (тот, который мы создали на предыдущем шаге) и нажмите «Далее» :

Введите имя пользователя (и пароль, если необходимо) и еще раз проверьте соединение (с помощью кнопки «Проверить соединение» ) и нажмите «Далее» :

После этого у нас есть возможность зарегистрировать базу данных.Регистрация в этом смысле означает, что база данных доступна для просмотра другими модулями LibreOffice (например, LibreOffice Calc и LibreOffice Writer ). Так что этот шаг не обязателен. В этом примере мы сохраним как «fosdem21_mariadb.odb» . См. Использование зарегистрированной базы данных.

Открывает следующее окно:

Состоит из трех окон / панелей:

  1. Окно «База данных» с опциями
    1. «Таблицы» , г.
    2. «Запросы» ,
    3. «Формы» ,
    4. «Отчеты» .
  2. Окно задач (в зависимости от того, что выбрано в окне «База данных» ). Когда выбран «Таблицы» , доступны следующие параметры:
    1. «Создать таблицу в режиме конструктора» ,
    2. «Используйте мастер для создания таблицы» и
    3. «Создать вид» .
  3. Окно «Таблицы» — показывает список создаваемых таблиц.

Как мы видим, есть системные таблицы в базе данных «mysql» , а также в базе данных «test» .

Предположим, мы создаем таблицу с помощью REST API из данных JSON из http://jsonplaceholder.typicode.com/posts и другой таблицы с использованием того же механизма из http://jsonplaceholder.typicode.com/users, и давайте вызовем их веб-постов и веб-пользователей . Для этого мы должны включить подключаемый модуль механизма хранения CONNECT и начать с REST_API. Дополнительные сведения см. В статье CONNECT — файлы, полученные с помощью запросов на восстановление.

Запросы, которые нам нужно запустить в MariaDB:

 СОЗДАТЬ ТАБЛИЦУ веб-пользователей ENGINE = CONNECT TABLE_TYPE = JSON
  HTTP = 'http: // jsonplaceholder.typicode.com/users ';

СОЗДАТЬ ТАБЛИЦУ веб-сообщений ENGINE = CONNECT TABLE_TYPE = JSON
  HTTP = 'http: //jsonplaceholder.typicode.com/posts';
 

Результат в LibreOffice Base будет таким, как показано ниже:

Двойной щелчок по таблице открывает новое окно с данными, отображаемыми для проверки:

Чтобы создать таблицу из окна «Задачи» , используйте опцию «Создать таблицу в режиме конструктора» , где можно указать конкретные имена и типы полей, как показано:

Из окна «Задачи» можно создать таблицу, используя опцию «Использовать мастер для создания таблицы» , чтобы создать несколько примеров таблиц:

Вложение librebase_9 не найдено

Можно заполнить данные в существующей таблице или создать и определить новую таблицу из модуля LibreOffice Calc с помощью простого копирования и вставки (в окне «Задачи» ).

Использование зарегистрированной базы данных

Другие модули могут использовать зарегистрированную базу данных, например, откройте «LibreOffice Calc» и перейдите в «Инструменты» , «Параметры» , и вы увидите файл «odb» , который мы зарегистрировали при запуске » База LibreOffice ».

Вложение librebase_register_1 не найдено

Десять полезных макросов LibreOffice

Макросы

— отличный способ автоматизировать задачи в приложениях электронных таблиц, будь то старый добрый Microsoft Excel или столь же эффективная альтернатива FOSS, LibreOffice Calc.Самое лучшее в макросах то, что они написаны на очень простом языке под названием Basic.

© Проект LibreOffice

Как следует из самого названия, Basic — это мягкий язык программирования, на самом деле разработанный с учетом простоты использования. Например, верхний / нижний регистр не имеет значения для имен переменных или ключевых слов ( if / IF , sub / Sub , function / Function являются эквивалентами), функциональные скобки необязательны, как Ruby, и преобразование типов происходит автоматически .Это делает Basic одинаково полезным как для опытных пользователей, так и для программистов. Макрос LibreOffice Basic — это просто функция или подпроцедура, которая выполняет конкретную полезную задачу. В этом руководстве мы увидим десять таких полезных макросов, которые могут помочь вам с различными задачами автоматизации.

  1. Рецепт 0: Как создать макрос LibreOffice
  2. Рецепт 1. Прочитать содержимое ячейки
  3. Рецепт 2: Изменить содержимое ячейки
  4. Рецепт 3: Найти и заменить текст
  5. Рецепт 4: Регулярные выражения
  6. Рецепт 5: Показать диалоговое окно открытия файла
  7. Рецепт 6: Показать диалоговое окно сохранения файла
  8. Рецепт 7: Файловый ввод-вывод: чтение из файлов
  9. Рецепт 8: Файловый ввод-вывод: запись в файлы
  10. Рецепт 9: Загрузить данные из файла CSV
  11. Рецепт 10: Копирование текста в буфер обмена
  12. Демо
  13. Список литературы

Рецепт 0: Как создать макрос LibreOffice

Хотя макросы также можно создавать в Writer и Draw, в этом конкретном руководстве мы ограничимся электронными таблицами (Calc).Чтобы создать макрос, просто откройте электронную таблицу в LibreOffice и перейдите в меню Инструменты-> Макросы-> Упорядочить макросы-> LibreOffice Basic . После этого, если вы хотите создать макрос, специфичный для вашей электронной таблицы (как обычно бывает), разверните файл электронной таблицы слева и выберите Standard и нажмите New . Это откроет редактор макросов LibreOffice как отдельное окно.

Рецепт 1. Считывание содержимого ячейки

Одна из основных вещей, необходимых для автоматизации, — это чтение содержимого ячейки.Следующий фрагмент кода делает именно это:

 Sub read_cell
    тусклый документ как объект
    document = ThisComponent
    лист = документ. листы (0)
    MsgBox (sheet.getCellByPosition (0, 0) .String)
Конец подписки
 

dim — ключевое слово, используемое для объявления переменной, но объявление полностью необязательно, если в начале модуля не указано Option Explicit . ThisComponent — это объект LibreOffice, который ссылается на текущую электронную таблицу (или письменный документ в случае Writer).Здесь важно выражение sheet.getCellByPosition (0, 0) .String , которое получает содержимое первой ячейки в первой строке. На ячейки можно ссылаться с помощью системы координат, где (0,0) относится к ячейкам в строке 0 и столбце 0. Таким образом, с помощью этого простого метода можно получить любое значение из всей электронной таблицы.

Чтобы запустить макрос из редактора, просто поместите курсор внутри тела sub или function любого макроса и нажмите F5 (или, альтернативно, щелкните значок Run BASIC на панели инструментов).

Рецепт 2: Изменить содержимое ячейки

Еще одна часто необходимая вещь — это возможность изменять содержимое ячеек. Следующий код устанавливает для первой ячейки первой строки значение «Hola! Mundo », испанское выражение« Привет! Мир »:

 Sub change_cell
    тусклый документ как объект
    document = ThisComponent
    лист = документ. листы (0)
    sheet.getCellByPosition (0, 0) .String = "Hola Mundo!"
    MsgBox ("Готово")
Конец подписки
 

Рецепт 3: Поиск и замена

Поиск и замена определенных строк может быть важной частью вашей рутины автоматизации.Ниже приведен забавный макрос, который ищет имена некоторых экспертов по Linux (например, Линус, Ричард, Питер и т. Д.) И заменяет их их фамилиями (Торвальдс, Столмен, Анвин):

 Sub replace_text
    Тусклые имена () как строка
    Тусклые фамилии () как строка
    Dim n As Long
    Тусклый документ как объект
    Тусклые листы как объект
    Тусклый лист как объект
    Тусклый заменить как объект

    names () = Array («Линус», «Ричард», «Питер», «Грег», «Билл»)
    surnames () = Массив ("Торвальдс", "Столмен", "Анвин", "Кроа", "Гейтс")
    document = ThisComponent rem.CurrentController.Frame
    rem sheet = doc.CurrentSelection.Spreadsheet
    листов = document.getSheets ()
    лист = листы.getByIndex (0)
    replace = sheet.createReplaceDescriptor rem document.createReplaceDescriptor в случае Writer
    rem replace.SearchRegularExpression = True
    Для n = lbound (names ()) To ubound (names ())
        replace.SearchString = имена (n)
        replace.ReplaceString = фамилии (n)
        sheet.replaceAll (заменить)
    Следующий n
    MsgBox ("Готово")
Конец подписки
 

имен () и фамилий () на самом деле являются массивами.В отличие от C и Java, массивы в Basic объявляются и доступны с помощью круглых скобок, а не квадратных. Кроме того, в объявлении массива объявляется верхняя граница, а не общий размер. Таким образом, foo (2) на самом деле является массивом размера 3 в диапазоне от индексов 0 до 2.

Рецепт 4: Регулярные выражения

Регулярные выражения очень полезны при поиске и замене текста на основе определенных шаблонов. Следующий макрос выполняет поиск всех адресов электронной почты в вашей электронной таблице и заменяет каждый на foo @ bar.com :

 Sub replace_with_regex
  Тусклые имена () как строка
  Тусклые фамилии () как строка
  Dim n As Long
  Тусклый документ как объект
  Тусклые листы как объект
  Тусклый лист как объект
  Тусклый заменить как объект

  pattern = "\ b [A-Z0-9 ._% + -] + @ [A-Z0-9 .-] + \. [A-Z] {2,} \ b" шаблон регулярного выражения rem для соответствия любому адресу электронной почты
  document = ThisComponent rem .CurrentController.Frame
  листов = document.getSheets ()
  лист = листы.getByIndex (0)
  заменить = лист.createReplaceDescriptor rem document.createReplaceDescriptor в случае Writer
  replace.SearchRegularExpression = True
  replace.SearchString = шаблон
  replace.ReplaceString = "[email protected]"
  sheet.replaceAll (заменить)

  MsgBox ("Готово")
Конец подписки
 

Рецепт 5: Показать диалоговое окно открытия файла

Отображение диалогового окна открытия файла — очень распространенное требование, особенно когда вы хотите открыть внешний файл для обработки. В приведенном ниже коде используется объект FilePicker для отображения диалогового окна открытия файла и возврата выбранного имени файла:

 функция show_open_dialog
    тусклый aurl как объект
    dim s как строка
    dim oDlg как объект

    oDlg = createUnoService ("com.sun.star.ui.dialogs.FilePicker ")
    oDlg.setMultiSelectionMode (ложь)
    oDlg.appendFilter ("Файлы CSV (.csv)", "* .csv")
    oDlg.execute
    aUrl = oDlg.getFiles ()

    s = aUrl (0)
    если len (s)> 0, то
        MsgBox ("Файл выбран:" & s & chr (13))
    конец, если
    show_open_dialog = s
конечная функция
 

createUnoService — это специальный метод LibreOffice для создания вспомогательных объектов, таких как FilePicker в этом примере.Метод appendFilter используется для фильтрации только файлов CSV в диалоговом окне.

Рецепт 6: Показать диалоговое окно сохранения файла

Для отображения диалогового окна сохранения файла используется тот же объект FilePicker , инициализирующий его аргументом FILESAVE_AUTOEXTENSION :

 функция show_save_dialog
    тусклый aurl как объект
    dim s как строка
    dim oDlg как объект

    sFilePickerArgs = Массив (_
    com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
    oDlg = createUnoService ("com.sun.star.ui.dialogs.FilePicker")
    oDlg.initialize (sFilePickerArgs ())
    oDlg.setMultiSelectionMode (ложь)
    oDlg.appendFilter ("Файлы CSV (.csv)", "* .csv")
    oDlg.setTitle ("Сохранить как ....")

    если oDlg.execute (), то
        aUrl = oDlg.getFiles ()
        s = aUrl (0)
        если len (s)> 0, то
            MsgBox ("Файл выбран:" & s & chr (13))
        конец, если
    еще
        s = ""
    конец, если
    show_save_dialog = s
конечная функция
 

Рецепт 7: Файловый ввод-вывод: чтение из файлов

Необработанный ввод-вывод файлов — это функция, предоставляемая почти всеми языками, а макросы Basic делают ее слишком простой.Код ниже используется для чтения файла CSV с тремя столбцами. Имя файла задается в переменной filename . Переменная num — это числовой тег, используемый для ссылки на обработчик файла, а FreeFile () возвращает свободный доступный номер, который можно использовать для тегирования. Заявление open не требует пояснений. В Basic файлы можно открывать в режимах ввода, вывода и двоичного кода. Наконец, оператор input используется для фактического чтения файла в переменные строка за строкой.

 sub file_io_read
    тусклый v1, v2, v3
    filename = "/home/prahlad/data/test.csv"
    число = FreeFile ()
    открыть имя файла для ввода как #num
    делать, пока не eof (число)
        ввод #num, v1, v2, v3
        напечатать v1 & "::" & v2 & "::" & v3
    петля
    закрыть #num
    msgbox "Готово"
конец субмарины
 

Рецепт 8: Файловый ввод-вывод: запись в файлы

Для записи в файлы обработчик открывается в режиме вывода вместо ввода , и оператор write используется для фактической записи переменных в файл.

 sub file_io_write
    filename = "/home/prahlad/data/dummy.csv"
    число = FreeFile ()
    открыть имя файла для вывода как #num
    напишите #num, "col1", "col2", "col3"
    напишите #num, "1", "2", "3"
    напишите #num, "4", "5", "6"
    закрыть #num
    msgbox "Готово"
конец субмарины
 

Рецепт 9: Загрузить данные из файла CSV

Помимо работы в режиме необработанного ввода-вывода, иногда требуется загрузить полный CSV-файл в виде листа в текущий документ.Используя функцию show_open_dialog , которую мы изучали ранее, следующий макрос сначала предлагает пользователю диалоговое окно открытия файла, а затем загружает указанный файл CSV как новый лист:

 sub load_from_csv
    fname = show_open_dialog
    если len (fname)> 0, то
        dim fileProps (1) как новый com.sun.star.beans.PropertyValue
        fileProps (0) .Name = "FilterName"
        fileProps (0) .Value = "Текст - txt - csv (StarCalc)"
        fileProps (1) .Name = "FilterOptions"
        fileProps (1).Значение = "44,34,76,1,, 0, ложь, истина, истина, ложь"
        document = StarDesktop.loadComponentFromURL (fname, "_blank", 0, fileProps ())
    конец, если
    msgbox "Готово"
конец субмарины
 

fileProps (0) — это переменная свойства, используемая для указания формата файла CSV, а fileProps (1) определяет параметры форматирования по умолчанию для CSV (например, разделитель, кодировку и т. Д.)

Рецепт 10. Копирование текста в буфер обмена

Пользовательская обработка может включать помещение в буфер обмена определенного текста из LibreOffice Calc.В следующем коде показано, как вставить строку «Hola!» в системный буфер обмена:

 sub copy_to_clipboard
    oClip = CreateUnoService ("com.sun.star.datatransfer.clipboard.SystemClipboard")
    oTR = createUnoListener ("TR_", "com.sun.star.datatransfer.XTransferable")
    oClip.setContents (oTR, ноль)
    msgbox "Готово"
конец субмарины

Функция TR_getTransferData (aFlavor As com.sun.star.datatransfer.DataFlavor) As Any
    Если (aFlavor.MimeType = "text / plain; charset = utf-16") Тогда
        TR_getTransferData = "Здравствуйте!"
    Конец Если
Конечная функция

Функция TR_getTransferDataFlavors () As Any
    Dim aF Как новый com.sun.star.datatransfer.DataFlavor
    aF.MimeType = "текст / простой; кодировка = utf-16"
    aF.HumanPresentableName = "Текст в Юникоде"
    TR_getTransferDataFlavors = Массив (aF)
Конечная функция

Функция TR_isDataFlavorSupported (aFlavor As com.sun.star.datatransfer.DataFlavor) As Boolean
    TR_isDataFlavorSupported = (aFlavor.MimeType = "текст / простой; кодировка = utf-16")
Конечная функция
 

Вторая функция является обратным вызовом и используется для хранения строки в буфере обмена.Последние две вспомогательные функции используются вспомогательными объектами SystemClipboard и XTransferable и являются обязательными.

Демо

Наконец, здесь можно найти рабочую электронную таблицу LibreOffice Calc, реализующую все эти примеры.

Артикул:

DIY: подключение LibreOffice Base к базе данных MySQL

Подключив LibreOffice Base к базе данных MySQL, он делает офисный пакет более гибким и мощным.Узнайте, как установить эту связь.

Я завершаю свою серию статей об использовании LibreOffice Base в качестве инструмента базы данных для конечных пользователей, демонстрируя, как он может также подключаться к уже существующей базе данных; это позволит вам запускать отчеты, создавать формы, запускать запросы и многое другое с этой подключенной базой данных.

Очень важно, чтобы вы выполнили много тестов в этой системе; вы не хотите вмешиваться и подключать LibreOffice Base к своим производственным базам данных.Кроме того, вы можете изменять базы данных, созданные другими приложениями, но соединение LibreOffice Base / MySQL лучше всего подходит для создания и управления базами данных, которые не используются другими приложениями. Итак, почему бы вам использовать этот метод вместо использования встроенной базы данных? Если ваша база данных больше или вы хотите использовать централизованную базу данных, которой могут управлять несколько человек, вам нужно подключиться к базе данных MySQL.

Прежде чем мы продолжим, я предполагаю несколько вещей:

Для создания баз данных я предпочитаю использовать такой инструмент, как MySQL Workbench.Для целей этого руководства я создал базу данных (используя MySQL Workbench) под названием libreoffice_mysql, которая будет базой данных, используемой для подключения из LibreOffice.

Сервер базы данных MySQL может быть расположен на машине, на которой запущен LibreOffice, или на удаленной машине. Если база данных находится на удаленном сервере, вам необходимо убедиться, что настольный компьютер LibreOffice имеет полный доступ к базе данных. Теперь приступим к процессу подключения LibreOffice Base к MySQL.

Шаг 1. Откройте LibreOffice Base

Откройте пакет LibreOffice, а затем откройте Base. Вы должны выбрать MySQL в раскрывающемся списке «Подключиться к существующей базе данных» (, рис. A, ).
Рисунок A

Здесь вы можете выбрать одну из баз данных, включая Oracle, Evolution Local, GroupWise, dBase, электронные таблицы и другие.

Шаг 2: Настройте соединение с MySQL

Существует три метода подключения LibreOffice к MySQL:

  • ODBC (открытое подключение к базе данных)
  • JDBC (подключение к базе данных Java)
  • Непосредственно

Чтобы подключиться с помощью JDBC, необходимо сначала установить libmysql-java.Мне всегда удавалось подключаться напрямую. В следующем окне мастера баз данных выберите «Подключиться напрямую» и нажмите «Далее» (, рис. B, ).
Рисунок B

OBDC и JDBC в прошлом были нестабильными, поэтому я думаю, что подключение напрямую — самый безопасный вариант.

Шаг 3. Настройка подключения к базе данных

В следующем окне вам необходимо ввести информацию для подключения к базе данных ( Рисунок C ). Вам потребуется имя базы данных, адрес сервера и номер порта. Рисунок C

Если ваша база данных работает на нестандартном порту, убедитесь, что вы знаете этот порт и что он открыт для подключения с настольного компьютера.

После того, как вы введете все данные, нажмите Далее.

Шаг 4. Настройте аутентификацию базы данных

На рис. D показано простое окно аутентификации, в котором вы должны ввести имя пользователя, имеющего доступ к базе данных (полноправный пользователь). После ввода имени пользователя убедитесь, что вы установили флажок «Требуется пароль». Рисунок D

Затем нажмите кнопку «Проверить соединение». Откроется новое окно, в котором вы можете ввести пароль для пользователя базы данных MySQL ( Рисунок E ).
Рисунок E

Введите пароль и нажмите ОК. Если аутентификация прошла успешно, вы получите запрос и вернетесь в предыдущее окно. При успешной аутентификации нажмите Далее.

Шаг 5. Зарегистрируйтесь и откройте базу данных

В последнем окне вы можете выбрать регистрацию базы данных и дальнейшие действия после завершения работы мастера ( Рисунок F ). Рисунок F

Если вы хотите немедленно приступить к созданию таблиц для базы данных, обязательно установите флажок для этого шага.

После того, как вы нажмете «Готово», вам потребуется указать имя и местоположение вашей базы данных. Не волнуйтесь — это не приведет к извлечению базы данных с сервера; он сохраняет только информацию о соединителе, который будет связываться с сервером. Вы готовы приступить к работе со своей базой данных; теперь вы можете создавать формы, выполнять запросы и многое другое.

Возможность подключения LibreOffice Base к базе данных MySQL делает этот офисный пакет намного более гибким и мощным. Я надеюсь, что вы сможете воспользоваться этой возможностью, чтобы помочь своим конечным пользователям работать с базами данных, не требуя от них работы со сложными приложениями.

Макрос

в LibreOffice Made Easy

Это простое введение в макрос для пользователей LibreOffice. Я предназначаю эту статью для людей, которые не разбираются в макросах, но заинтересованы в их создании.Вы не будете писать код с макросами, вместо этого вы делаете что-то с меню и панелью инструментов, тогда LibreOffice автоматически записывает ваши действия в виде кода. Вот и все, вот как это работает. Вы познакомитесь с некоторыми интересными, причудливыми макросами, используя LibreOffice Writer (текстовый процессор) и Calc (электронная таблица), чтобы понять основы. Вы познакомитесь с инструментами для его создания и пройдете этапы создания макроса форматирования на Writer, а также с очень простым игровым макросом на Calc. Я надеюсь, что это простое введение поможет вам продолжать создавать все лучше и лучше макросы.Вперед, продолжать!

Подпишитесь на канал Telegram UbuntuBuzz, чтобы получать обновления статей напрямую.

Резюме

  • О макросе
  • Ограничения
  • Часто используемое меню
  • Диалог диспетчера макросов
  • Включение функции макросов в LibreOffice
  • Ваш первый макрос
  • Ваше первое редактирование
  • Добавление кнопки
  • Создание простой игры с макросами
  • Создание ярлыков макросов
  • Дополнительная литература

О макросе

По сути, макрос — это автоматически созданный код, основанный на взаимодействии пользователя.Макрос широко используется в таких программах, как Microsoft Office и LibreOffice. Вы делаете что-то один раз, записываете это как макрос, и программа будет повторять эту работу за вас столько, сколько вы захотите. Вы не пишете код макроса, программа пишет его за вас. После создания кода вы можете свободно редактировать этот код в соответствии со своими потребностями. Вы можете скопировать код макроса с одного компьютера на другой, чтобы запустить макрос там. Вы можете поделиться своими макросами с друзьями. Для учителей макрос отлично подходит для проведения викторин.Для владельцев магазинов макрос отлично подходит для создания программы транзакций («Торговая точка» или POS). Для обычных пользователей макрос отлично подходит для автоматизации всего, что вы хотите автоматизировать.

Ограничения

  • LibreOffice может записывать макрос только в Writer и Calc. Сегодня Impress по-прежнему не может записывать макрос.
  • Для записи макроса сначала необходимо включить функцию записи макроса.
  • Действия, связанные с диалоговым окном, не могут быть записаны.
  • Движения курсора мыши и выбор не могут быть записаны, только указатель клавиатуры и выбор клавиатуры.

1. Часто используемое меню

Запись макроса:
Инструменты> Макросы> Запись макроса

Запуск макроса:
Инструменты> Макросы> Запуск макроса

Редактирование макроса:
Инструменты> Макросы> Упорядочить макросы> LibreOffice Basic> выберите имя макроса> Изменить.

Сохранить макрос:
В диалоговом окне макроса: отредактируйте имя макроса (верхний левый угол)> выберите местоположение либо в разделе «Мои макросы», либо в разделе «Макросы LibreOffice», либо в текущем документе> «Сохранить».

2. Ваш новый дорогой друг

Это диалоговое окно диспетчера макросов, которое вы всегда (да, всегда) будете использовать в LibreOffice. Остальная часть этой статьи заставит вас часто использовать этот Macro Manager. Так что знайте это и будьте готовы.

(Диспетчер макросов: панель меню Инструменты> Макросы> Упорядочить макросы> LibreOffice Basic)

[Этот диспетчер макросов показывает три макроса, а именно «autobullet», «autonumber» и «autocolor», хранящиеся глобально в LibreOffice]

3.Включение функции макросов

  • Перейдите в панель меню Инструменты> Параметры.
  • Перейдите в раздел «Дополнительно»> установите флажок «Включить макрос»> «ОК».

(Где включить функцию макросов в LibreOffice)

4. Ваш первый макрос

Чтобы понять концепцию, давайте создадим макрос для автоматизации раскраски всего для 3 строк. Это очень просто: начните с макроса записи: вы перемещаете указатель с помощью клавиатуры, выбираете каждую строку и придаете ей желтый цвет; закончить с остановкой записи.Вы сохраните макрос, созданный с именем файла, которое вы выберете, и поместите либо в обычное место, либо в файл документа.

Результат переговоров сначала:

(Gif-анимация: автоматизация раскраски, маркировки и нумерации трех строк)

Как это сделать:
1) Напишите три строчки «первая вторая треть».
2) Запишите макрос
3) Во время записи используйте клавиатуру, выберите первую строку и раскрасьте ее желтым цветом
4) Выберите вторую строку и раскрасьте ее в желтый цвет
5) Выберите третью строку и раскрасьте ее в желтый цвет
6) Остановить запись
7) Появится диалоговое окно диспетчера макросов
7) Дайте ему имя autocolor (см. Анимацию выше) и сохраните

Как запустить:
0) Отмените все цвета, нажмите Ctrl + Z, чтобы сделать это
1) Поместите указатель в начало первой строки
2) Запустите макрос autocolor (найдите его в My Macros> Standard> Module1)
3) Вы видите, что все строки автоматически стали желтыми

Теперь вы можете сделать два других макроса «autobullet» и «autonumber».

5. Ваше первое редактирование

Ваш недавно созданный макрос работает слишком быстро. Вы не можете ясно увидеть процесс. Чтобы было понятнее, следует притормозить. Для этого вы редактируете исходный код макроса, добавляя время задержки в 1 секунду (1000 миллисекунд) для каждого шага.

Где находится редактор макросов:
Перейдите в строку меню «Инструменты»> «Макросы»> «Организовать»> «LibreOffice Basic»> выберите макрос с именем «autocolor»> «Изменить».

Как редактировать макрос:

  • Обратите внимание на то, что код начинается с автоцвета и заканчивается концом
  • Не запутайтесь с кодом.Просто посмотрите, есть те же строки, в которых говорится, что dispatcher.execute ___ (___, ___).
  • Напишите код Подождите 1000 прямо под каждой этой строкой.
  • Нажмите кнопку «Сохранить».
  • Закройте редактор макросов.
  • Выполните тот же макрос еще раз.

(LibreOffice Basic: редактор макросов, напоминающий редактор макросов MSO)

[Желтым цветом показано, где редактировать]

Что ты видишь? Вы увидите, что ваш макрос работает медленнее, как в моей первой анимации выше.Легко, правда?

Теперь вы также можете редактировать два других макроса — autobullet и autonumber.

6. Игра с элементами управления формой

Конечно, для игры нужны кнопки. См. Анимацию в формате gif ниже, показывающую, как включать и отключать редактирование форм в LibreOffice. После включения вы увидите, что все компоненты пользовательского интерфейса включены, включая кнопку. После отключения они также отключаются. Диалоговое окно

Form Controls доступно в строке меню View> Toolbars> Form Controls.

Чтобы создать кнопку, необходимо разрешить редактирование формы выше, выбрать «Кнопка» и перетащить. После создания вы отключаете редактирование формы, вы можете нажимать на нее, как на кнопки. См. Анимацию в формате gif ниже. Это просто.

7. Создание простой игры с макросом

Дизайн прост: нажмите кнопку, и вы получите ПРАВИЛЬНО. Нажмите другую кнопку, вы получили НЕПРАВИЛЬНЫЙ счет. Легкий. Для этого потребуется функция дизайна формы в LibreOffice. Давайте сделаем это.

1) Поместите указатель на ячейку A1
2) Запишите макрос, введите RIGHT в ячейку A1, остановите запись.Удалите текст.
3) Запишите другой макрос, введите НЕПРАВИЛЬНО в ячейку A1, остановите запись. Удалите текст.

До этого момента у вас есть два макроса, один говорит ПРАВИЛЬНО, а другой — НЕПРАВИЛЬНО. Хорошо.

4) Откройте диалоговое окно «Дизайн формы» и создайте одну кнопку за другой. Теперь у вас есть две кнопки.
5) Щелкните первую кнопку правой кнопкой мыши> Элементы управления> События> Кнопка мыши нажата> откройте макрос для ВПРАВО.
6) Сделайте то же самое для второй кнопки, но с макросом НЕПРАВИЛЬНО.
7) Отключить редактирование форм.
8) Нажмите первую кнопку, A1 должен показать ВПРАВО. Нажмите вторую кнопку, A1 должно показать НЕПРАВИЛЬНО.

Поздравляем! Вы создали простую игру с макросом LibreOffice.

(Простая игра)

8. Создание ярлыков макросов

Видите мою первую анимацию выше? Есть плавающая панель инструментов с ярлыками для макросов. Это облегчает нашу работу. Как сделать самому? Это просто:

1) Перейдите в Инструменты> Настроить> Панели инструментов
2) Нажмите кнопку «Создать»> назовите ее «Мои собственные макросы!»
3) Нажмите кнопку «Добавить команду».
4) Прокрутите вниз> выберите макросы LibreOffice> выберите свой макрос> нажмите «добавить»> повторите для всех других макросов, которые вы хотите> ОК
5) Вызовите новую панель инструментов из панели меню «Вид»> «Панели инструментов»> «Мои новые макросы»

Смотрите? Это не так уж и сложно.

(О, и да, вы даже можете добавить значок для каждого такого макроса)

Рассказываю тебе секрет

Секрет в том, что будет много руководств по макросам для Microsoft Office, которые можно применить к LibreOffice. Есть так много книг по макросам, которые учат вас макросам Word и Excel, что вы можете попробовать их в Writer и Calc. Хорошо, вы можете начать с учебника Западного Сиднейского университета по созданию макросов Excel. Возможно, не всегда работает мгновенно, но вам нужно только адаптировать некоторые из них.Вы можете сначала начать делать простейшие макросы. Пожалуйста, поделись этим секретом со своим другом.

Заключительные слова

Это все. Это просто очень упрощенное введение. Я надеюсь, что вы сможете узнать больше сами. Если вы хотите узнать больше прямо сейчас, просто прочтите дополнительные материалы ниже. Теперь вы можете разрабатывать свои собственные макросы. Счастливо работающий!

Дополнительная литература

Я действительно рекомендую вам посмотреть видео из Computing and ICT in a Nutshell, так как это было мое первое видео, которое я нашел в макросе.Только 5 минут. Это очень легко понять и практиковать. Дополнительные ссылки я добавляю для вас ниже.


Эта статья находится под лицензией CC BY-SA 3.0.

Как создать форму ввода данных в LibreOffice Base

Часто ли вы записываете большие объемы данных в электронную таблицу или таблицу базы данных? Или, может быть, вы хотите разместить форму на своем веб-сайте, чтобы гости могли делиться своей информацией? Вы можете создать свою собственную форму, связанную с базой данных, с помощью LibreOffice Base, бесплатной альтернативы Microsoft Access.

В этом руководстве мы создадим простую, но привлекательную форму для быстрого и удобного ввода данных в вашу базу данных. Он будет иметь несколько текстовых полей, несколько кнопок выбора и две кнопки управления формой.

Начало работы с Libre Office Base

Перед первым шагом убедитесь, что на вашем компьютере установлен пакет LibreOffice. Затем следуйте нашему руководству по созданию базы данных и таблицы в Base.

В этом руководстве мы будем работать только с одной таблицей.Убедитесь, что в вашей таблице есть поле для каждой точки данных, которую вы собираетесь собирать в форме, причем одно из них является полем назначенного идентификатора.

Для целей этого руководства наша форма будет каталогизировать коллекцию фильмов. Это означает, что у нас будет поле для названия фильма, режиссера, года выпуска и формата, а также идентификатора записи, но вы можете настроить свою таблицу и форму в соответствии со своими потребностями.

Шаг 1. Создайте форму

В главном окне LibreOffice Base перейдите в меню Database> Forms , затем в разделе Tasks щелкните Use Wizard to Create Form (выделено ниже).

На боковой панели есть восемь вариантов, но вам не нужно заполнять их все. Мы расскажем вам о каждом из них, которые вам нужно использовать ниже.

Выбор поля

Выберите свою таблицу в раскрывающемся меню «Таблица», а затем выберите из списка, какие из полей таблицы вы хотите заполнить с помощью формы.

Если вы включили AutoValue для поля идентификатора, то включение этого поля в форму не является обязательным, поскольку Base автоматически заполнит его следующим логическим номером идентификатора.Тем не менее, вы все равно можете захотеть, чтобы он был там, чтобы вы всегда могли быть уверены, над какой записью вы работаете.

Для наших целей мы включим все поля.

Здесь также полезно переставить поля в порядке, в котором вы хотите их заполнить, в порядке убывания. Это зависит от вас и может зависеть от источника данных, из которого вы берете данные.

Настройка подчиненной формы

Не устанавливайте флажок для добавления подчиненной формы.Наша форма будет довольно простой, поэтому мы не будем ее включать.

Элементы управления аранжировкой

Выберите расположение, которое вам больше всего нравится, вероятно, один из вариантов столбцов; вариант поля данных менее привлекателен, и вы можете сделать больше с помощью столбчатого макета.

Установить ввод данных

Здесь Base спросит о цели формы. Выберите . Эта форма должна использоваться для ввода новых данных только , если вас не интересует просмотр ваших предыдущих записей одновременно с вводом данных.

Если вы все же решили отображать данные, мы рекомендуем вам также установить флажки, запрещающие изменение и удаление существующих данных, поскольку случайное изменение и удаление очень легко.

Применить стили

Выберите цвет фона и тип границы поля. Вы можете изменить их позже, если захотите.

Название набора

Дайте вашей форме имя, указывающее на ее назначение.После этого выберите вариант Изменить форму и нажмите Готово .

Связанный: Как создать форму в Microsoft Access

Закончив работу с мастером, вы можете редактировать форму, как вам нравится. Мы собираемся начать с создания заголовка для формы, чтобы его четко идентифицировать.

На верхней панели инструментов нажмите Вставить текстовое поле , выделенное красным на фотографии ниже.Обратите внимание, что эта кнопка отличается от кнопки «Текстовое поле» на левой панели инструментов, которая предназначена для создания текстовых полей для ввода данных.

Введите заголовок, который вы хотите для своей формы, затем выделите его, чтобы настроить шрифт.

В будущем, если вы захотите отредактировать поле, в котором находится текст, щелкните заголовок один раз. Чтобы отредактировать сам текст, вам нужно дважды щелкнуть по нему.

Шаг 3.Создание кнопок управления формой

Когда вы добавляете записи, вам понадобится несколько кнопок, позволяющих перемещаться по процессу ввода данных. Мы предлагаем хотя бы включить кнопку «Следующая запись».

Для этого щелкните инструмент Push Button на левой панели инструментов. Щелкните и перетащите, чтобы сформировать форму и размер кнопки. Затем отредактируйте свойства элемента управления кнопки, щелкнув ее правой кнопкой мыши и выбрав Control Properties .

Есть много полей, которые вы можете редактировать, но нас интересуют только некоторые:

  • Имя : дайте ему имя, которое будет отличать его от других объектов в вашей форме. Вы будете использовать это имя при редактировании частей формы, например порядка табуляции.
  • Метка : в этом поле определяется текст, который будет отображаться на кнопке. Измените его на что-то вроде «Следующая запись» или, может быть, на «>>.»
  • Действие : Установите действие Новая запись . Это заставляет кнопку сохранять вашу текущую запись и переходить к новой записи всякий раз, когда она нажимается.

Давайте также создадим отдельную кнопку, чтобы сохранить вашу текущую запись, не переходя к новой записи. Таким образом, вы можете сохранить свою работу и выйти в любой момент, не создавая новую пустую запись.

Снова создайте кнопку с помощью инструмента «Кнопка», задав имя и метку так же, как и раньше, но установите действие Сохранить запись .

Шаг 4. Создайте кнопки выбора

Мы собираемся заменить одно из текстовых полей в нашей форме, поле Format , кнопками выбора (также называемыми переключателями). Если одно из ваших полей всегда будет содержать один из нескольких ограниченных параметров, кнопка выбора позволяет вам быстро вводить эти данные, не вводя их каждый раз.

Вам нужно будет удалить текстовое поле, созданное мастером для поля, которым должны управлять переключатели.Щелкните поле правой кнопкой мыши и выберите Enter Group . Затем щелкните текстовое поле, чтобы выделить его, и нажмите кнопку Удалить .

Выйдите из группы, щелкнув в любом другом месте, а затем выберите инструмент Option Button на левой панели инструментов.

Щелкните и перетащите область, в которой вы хотите разместить первую опцию. Повторите эти действия для любого количества опций для этого поля.В нашем примере у нас будет три: для DVD, Blu-ray и цифрового.

Дважды щелкните каждую кнопку выбора, чтобы изменить ее свойства элемента управления. Дайте ему уникальное имя и ярлык .

Затем на вкладке Data диалогового окна Properties установите для поля Data любое поле, которым вы хотите управлять с помощью этой кнопки. В поле Reference value (on) введите данные, которые вы хотите ввести при нажатии кнопки.Вы можете оставить поле Reference value (off) пустым.

Повторите этот процесс для каждой кнопки выбора, вставляя для каждой свое имя и ссылочное значение.

Шаг 5. Измените порядок вкладок

Теперь у вас должна быть полностью функциональная форма. Вы можете попробовать это, выйдя из представления дизайна (конечно, сохранив свою работу) и дважды щелкнув форму в главном окне Base.

Когда вы пробуете форму и нажимаете клавишу Tab для перехода от одного поля к другому, возможно, вы заметите неправильный порядок табуляции. Это может раздражать и сбивать с толку при вводе данных, поэтому мы это исправим.

Вы можете настроить порядок табуляции, вернувшись в представление дизайна и нажав кнопку Activation Order на нижней панели дизайна.

В диалоговом окне порядка активации вы увидите список всех объектов вашей формы.Измените их порядок следования клавишам Tab или нажмите Автоматическая сортировка , чтобы Base угадал, как вы хотите, чтобы Tab работал.

Начать ввод данных

Теперь, когда вы закончили свою первую форму, вы можете открыть свою базу данных и начать добавлять записи в любое время, дважды щелкнув форму. Прежде чем вы это узнаете, вы будете вводить данные с невероятной скоростью.

Однако вы можете захотеть разместить свою базу данных и форму в Интернете.Если вы выберете это, важно, чтобы вы внимательно рассмотрели варианты своего хостинга для этого.

Лучшие услуги веб-хостинга: общий, VPS и выделенный

Ищете лучший веб-хостинг для своих нужд? Вот наши лучшие рекомендации для вашего блога или веб-сайта.

Читать далее

Об авторе

Джордан Глор
(Опубликована 51 статья)

Джордан — штатный писатель в MUO, который страстно желает сделать Linux доступным и свободным от стресса для всех.Он также пишет руководства по конфиденциальности и производительности.

Более
От Джордана Глоора

Подпишитесь на нашу рассылку новостей

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Еще один шаг…!

Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.

Разверните, чтобы прочитать всю историю

LibreOffice Review 2021: функции, цены и многое другое

Если вы ищете альтернативу Microsoft Office, не хотите ежемесячную подписку или предпочитаете загружать свое программное обеспечение,

LibreOffice — отличный выбор.

Как программное обеспечение с открытым исходным кодом, LibreOffice постоянно обновляется новыми улучшениями и не требует подключения к Интернету для работы.Из этого обзора LibreOffice вы узнаете, как это программное обеспечение работает и чем оно отличается от других офисных пакетов.


Для кого предназначен LibreOffice?

LibreOffice предназначен для индивидуальных пользователей и малых предприятий, которым нужны бесплатные загружаемые инструменты, не беспокоясь о том, что их программное обеспечение устареет и не будет поддерживаться в ближайшие годы. Хотя некоторые крупные предприятия используют LibreOffice, отсутствие поддержки является проблемой.

Компании, у которых есть разработчики, могут предпочесть LibreOffice, потому что по природе программного обеспечения с открытым исходным кодом вы можете настроить код в соответствии со своими потребностями.Более того, несколько партнеров продают корпоративные версии с обслуживанием клиентов и соглашениями об уровне обслуживания (SLA). Вы можете предпочесть LibreOffice, если:

  • Ваша группа использует различные операционные системы, такие как Linux, macOS или Windows
  • Доступ к Интернету нерегулярный или недоступен в удаленных офисах. extinct
  • Мобильные приложения и доступность в Интернете не важны для вас
  • Вам нужна обширная языковая поддержка в ваших документах
  • Вы знакомы с Microsoft Word и ищете бесплатную версию

Существует облачная версия LibreOffice, доступный через третьих лиц под такими именами, как Collabora Office и LibreOffice Online на базе CIB.Однако веб-версия не включает систему хранения файлов и не поддерживается The Document Foundation, поэтому этот обзор LibreOffice не включает информацию об облачной версии.

LibreOffice также часто обновляется. Например, LibreOffice 5.0 вышел в 2015 году, версия 6.0 появилась в 2017 году, а 7.0 была представлена ​​в 2020 году.


Функции LibreOffice

Как и другие Zoho Office Suite, LibreOffice поставляется с основными инструментами, необходимыми для создания документов, электронных таблиц и т.д. и презентации.Он также предоставляет базу данных, сопоставимую с Microsoft Access.

Однако он не предлагает никаких инструментов для общения или совместной работы. Он также не предлагает облачное хранилище, поэтому вы можете использовать передовые методы управления документами, используя любое существующее файловое решение.

Основные функции LibreOffice:

  • Writer: Простое в использовании приложение для обработки текста
  • Calc: Программа для работы с электронными таблицами, аналогичная Microsoft Excel или Google Sheets.
  • Impress: Презентационная платформа для создания слайд-шоу
  • Draw: Встроенная программа редактирования графики
  • База: Программа базы данных, которая интегрируется со всеми приложениями LibreOffice
  • Math: Редактор формул, используемый для создания сложные формулы для использования во всех приложениях LibreOffice
  • Диаграммы: Автономный инструмент для создания и редактирования диаграмм и графиков
  • Расширения: Сотни дополнительных инструментов для удовлетворения практически любых потребностей бизнеса

LibreOffice Writer

Writer — это инструмент для обработки текстов, предлагающий стандартные функции, которые есть в других подобных программах, включая автозамену словаря и функцию автозаполнения.

Writer совместим со многими форматами документов. Однако при открытии документа Word в LibreOffice могут возникать ошибки форматирования или несовместимые шрифты, что может стать проблемой, если вы работаете с клиентами или членами группы, использующими Microsoft Office.

Напротив, если вы работаете с международными клиентами и командами, использующими открытые форматы документов, вы оцените встроенную поддержку этого типа файлов.

LibreOffice Writer также предлагает готовые шаблоны для документов, таких как факсы, визитные карточки, протоколы собраний или повестки дня конференций.

Хотя интерфейс похож на Microsoft Word, для выполнения некоторых задач, таких как изменение стиля заголовка, требуется больше щелчков мышью, чем с другими программами обработки текста. Однако есть несколько полезных встроенных функций и расширений, таких как:

  • Возможность экспорта документов в виде электронных книг, которая недоступна без сторонней интеграции в Microsoft Word
  • Инструмент редактирования для скрытия конфиденциальной информации. данные либо по одному слову за раз, либо автоматически путем выбора слов или фраз для дезинфекции
  • Готовая программа проверки грамматики на четырех языках, включая английский, бразильский, венгерский и русский
  • Дополнительные расширения для средств проверки грамматики в более более 30 языков, генератор кода быстрого ответа (QR) и панель инструментов для эмодзи

LibreOffice Writer использует знакомый интерфейс и панели инструментов.Источник: программное обеспечение LibreOffice.

LibreOffice Calc

LibreOffice Calc — это удобная программа для работы с электронными таблицами с мастером, который помогает извлекать содержимое из баз данных или задавать вопросы «что, если» в диспетчере сценариев.

На одном листе может быть до 1024 столбцов и 1 048 576 строк. И Microsoft 365, и программы электронных таблиц Google Workspace позволяют использовать более 15 000 столбцов, но предлагают одинаковое количество строк в таблице. Calc также предлагает 508 функций электронных таблиц, что сопоставимо с Microsoft.

Несмотря на то, что программное обеспечение позволяет создавать диаграммы, обновление вашей электронной таблицы новой диаграммой и меньшим количеством параметров диаграммы, чем в других программах для работы с электронными таблицами, занимает много времени. Более того, программные ошибки существуют с такими вещами, как узорчатые или градиентные цвета фона ячеек.

Чтобы получить функциональность, аналогичную Microsoft, вам необходимо загрузить расширения. Например, LibreOffice Calc не поддерживает функцию удаления повторяющихся ячеек. Вы можете добавить эту функцию, загрузив расширение Remove Duplicates и перезапустив Calc.Вы также не найдете шаблонов для Calc, но некоторые из них доступны для загрузки в качестве расширения.

С легкостью получайте итоги для столбцов с помощью функции суммы. Источник: программное обеспечение LibreOffice.

LibreOffice Impress

LibreOffice Impress — это инструмент для создания слайд-шоу, предлагающий несколько режимов просмотра, включая обычный режим, схему, заметки, раздаточный материал и сортировщик слайдов.

Он предоставляет инструменты для создания трехмерных изображений, загружаемые шаблоны из расширений, функции анимации и консоль докладчика.Используйте свой телефон или планшет в качестве пульта ДУ во время презентаций, загрузив приложение из Google или App.

Создавайте, импортируйте или редактируйте презентации в LibreOffice Impress

.

Источник: программное обеспечение LibreOffice.

LibreOffice Draw

LibreOffice Draw — это программа для редактирования графики, идеально подходящая для создания блок-схем, сетевых диаграмм и других технических чертежей. Он предлагает инструменты от руки, функции группировки объектов и отображает размерные линии.Вы также можете использовать Draw для редактирования фотографий и файлов PDF.

Используйте LibreOffice Draw для создания и редактирования графики

.

Источник: программное обеспечение LibreOffice.

LibreOffice Base

LibreOffice Base — это система управления базами данных, позволяющая создавать собственные базы данных для всех программ пакета LibreOffice.

В отличие от Microsoft Access, который работает только в операционной системе Windows, LibreOffice Base полностью работает во всех операционных системах.Однако визуально он не так привлекателен, как Airtable.

Base поставляется с мастерами и предопределенными определениями таблиц, которые помогают создавать формы, таблицы и отчеты, используемые для отслеживания клиентов, счетов-фактур или активов. База поддерживает:

  • MySQL
  • MariaDB
  • Подключение к базе данных Java (JDBC)
  • Открытое подключение к базе данных (ODBC)
  • Адресная книга Mozilla Thunderbird
  • Адресная книга KDE
  • Протокол доступа к легким каталогам Evolution (LDAP) и хранилище
  • Адресная книга системы Windows
  • Адресная книга Microsoft Outlook при использовании Microsoft Windows

Используйте мастер таблиц для быстрого создания базы данных в LibreOffice Base.

Источник: программное обеспечение LibreOffice.

LibreOffice Math

LibreOffice Math — это расширенный редактор формул, используемый исследователями или специалистами по обработке данных. Вы можете использовать Math отдельно или в Writer, Impress, Calc или Draw. Вы можете создавать научные и математические формулы с различными элементами, включая:

  • Интегралы
  • Матрицы
  • Системы уравнений
  • Дроби
  • Неравенства
  • Термины с показателями степени

Создавайте сложные формулы в LibreOffice Math.Источник: программное обеспечение LibreOffice.

LibreOffice Charts

LibreOffice Charts можно использовать как отдельное приложение или в составе любых других программ LibreOffice. Он позволяет создавать встраиваемые круговые диаграммы, 2D и 3D диаграммы, точечные диаграммы и графики трендов.

Расширения

Все программы LibreOffice позволяют добавлять неограниченное количество расширений или шаблонов для улучшения функциональности вашего программного обеспечения. Вы можете найти расширения через LibreOffice или OpenOffice с более чем 1100 доступными опциями.

Популярные расширения включают:

  • OpenOffice.org2GoogleDocs: Позволяет импортировать, экспортировать и обновлять документы из Zoho, Google Docs и WebDAV.
  • Поддержка языков: Вы найдете обширный список словарей, средств проверки грамматики и тезаурусов для множества языков.
  • Клипарт: Ни один из инструментов LibreOffice не поставляется с картинками, но существует более 30 различных расширений картинок.

Выбирайте из сотен расширений в центре расширений LibreOffice.Источник: extensions.libreoffice.org.


Простота использования LibreOffice

Если вы выросли на продуктах Microsoft Office, то, возможно, вы найдете LibreOffice простым в использовании. Интерфейс напоминает более старые версии Microsoft, хотя последнее обновление предлагает дизайн панели Notebook, очень похожий на интерфейсы Google или Microsoft.

Тем не менее, с пакетом LibreOffice определенно нужно научиться. Некоторые функции скрыты под подменю, что означает, что вы будете нажимать больше раз, чтобы получить желаемый результат.


Цены LibreOffice

LibreOffice — это программное обеспечение с открытым исходным кодом, которое можно бесплатно загрузить и использовать на любом количестве поддерживаемых устройств. Новые обновления выходят часто; вы просто загружаете последнее обновление, не удаляя текущую версию и не теряя сохраненных файлов.

Однако здесь нет никаких технических возможностей или вариантов обслуживания клиентов. Document Foundation рекомендует использовать партнера по экосистеме для помощи и новых функций.

Партнеры по экосистеме:

  • Collabora: Предлагает бесплатную версию для 20 пользователей, платный план для 99 пользователей по цене 18 долларов США за пользователя в год и версию Enterprise, доступную по индивидуальному запросу.
  • CIB: Предоставляет программное обеспечение LibreOffice и поддержку за 14,99 долларов США для установки до 10 устройств Windows. Неясно, подписка это или разовая плата.

LibreOffice также имеет программу сертификации и может направить вас к различным специалистам за услугами поддержки. К профессионалам относятся разработчики, эксперты по миграции и сертифицированные инструкторы.


Поддержка LibreOffice

В отличие от других платформ, LibreOffice не предоставляет прямой поддержки.Здесь нет службы поддержки клиентов по телефону, в чате или по электронной почте. Чтобы получить помощь по LibreOffice, вы можете:

  • Присоединиться к списку рассылки группы и задать свой вопрос группе
  • Воспользуйтесь сайтом поддержки LibreOffice, разместив запрос на доске сообщений
  • Приобрести LibreOffice через партнера по экосистеме, предлагающего услуги поддержки
  • Выполните поиск в Интернете, чтобы найти ответы в различных блогах и справочных форумах.

Преимущества LibreOffice

LibreOffice может стать отличной альтернативой продуктам Microsoft или Google, если вам нужно бесплатное программное обеспечение, которое никогда не требует обновления и оплаты.

Ваша компания может использовать LibreOffice, не сомневаясь, что он все еще будет существовать и сможет открывать ваши старые документы даже через десять лет. Другие преимущества использования LibreOffice:

  • Отсутствие затрат на загрузку и использование программного обеспечения на неограниченном количестве устройств
  • Частые обновления и расширения, добавленные для улучшения функциональности
  • Хорошо работает на старых операционных системах, ноутбуках и настольных компьютерах
  • Языковая поддержка для 191 языка, в том числе
  • Кросс-платформенное использование, так как он одинаково хорошо работает на устройствах Linux, macOS или Windows
  • Не требуется подключение к Интернету
  • Большинство типов файлов совместимы с LibreOffice
  • В отличие от устаревших программ, вы выиграли не теряет функциональность или доступ во время обновлений
  • Нет проблем с конфиденциальностью или сбором данных, поскольку они существуют только на вашем компьютере

Лучшее офисное программное обеспечение с открытым исходным кодом

Если вы устали от платы за подписку на пользователя или устройство или беспокоитесь о потере доступа к документам при использовании устаревшего программного обеспечения, тогда LibreOffice — хорошая альтернатива.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

[MariaDB-сервер]
Описание = сервер MariaDB
Драйвер = MariaDB ODBC 3.1 Драйвер
СЕРВЕР = MariaDB
ПОЛЬЗОВАТЕЛЬ = anel
ПАРОЛЬ =
БАЗА ДАННЫХ = test
PORT = 3306
PORT = 3306