пятница, 31 марта 2017 г.

Условное форматирование в LibreOffice Calc

Как ни странно, очень многие люди, использующие в работе электронные таблицы Calc, не знают о такой вещи, как условное форматирование. Что такое условное форматирование? Это автоматическое форматирование ячейки в зависимости от данных в ней и условия, заданного пользователем. Например, в зависимости от данных в ячейке может меняться её цвет или, например, такие свойства шрифта, как размер, гарнитура, эффекты или цвет, а также это всё вместе в различных вариациях. Или в ячейке могут быть показаны дополнительные значки или гистограммы (но об этом ниже).
Для чего это нужно? Это нужно для визуального выделения нужных данных среди всех остальных, либо для облегчения визуального восприятия информации. Причем пользователю не нужно всматриваться, пытаться анализировать данные, а затем вручную что-то выделять или помечать. Программа всё сделает за Вас.
Настройки условного форматирования расположены в подменю Формат-Условное форматирование.
Доступны следующие варианты: Условие, Цветовая шкала, Гистограмма, Набор пиктограмм, Дата. Рассмотрим каждый из них подробнее:

Условие.
На иллюстрации ниже видно, что для ячейки необходимо выбрать один из вариантов условия, при соответствии которому, к ячейке будет применён задаваемый стиль форматирования.
Для некоторых типов условий необходимо будет дополнительно задать значения в поле справа от выпадающего списка, о чём выдаётся соответствующее предупреждение "Введите значение!".
Количество условий для ячеек не ограничено. Можно задать одной ячейке условия на все возможные варианты вводимых данных.
На иллюстрации ниже привёден пример результата работы условного форматирования с тремя условиями для каждой ячейки: диапазон от 1 до 10 - красный, от 10 до 50 - жёлтый, свыше 50 - зелёный. Пример абсолютно абстрактный конечно же.
При изменении значения в любой ячейке соответственно изменится форматирование, если число будет относиться к иному заданному диапазону.
Точно так же можно задавать условие для текста, выбирая нужный тип условия в диалоге.
Стиль для форматирования ячейки можно выбрать из имеющихся, а можно создать свой, выбрав первый пункт в выпадающем списке "Применить стиль".

Цветовая шкала.
Этот вариант применим только к диапазону ячеек, поскольку оперирует некоторыми минимальными и максимальными значениями в ячейках диапазона. Поэтому при выборе этого варианта в диалоге Условное форматирование сразу выбрано "Все ячейки":
Доступно два типа цветовой шкалы: 3 значения и 2 значения. На иллюстрации ниже показаны примеры для трёх (красный, жёлтый, зелёный) и для двух (синий, красный) цветов.
Можно явно задать числовой диапазон, указав минимальное, среднее и максимальное значения для трёхцветовой шкалы или минимальное и максимальное для двухцветовой. А можно указать автоматическое определение минимального и максимального значения, выбрав это в выпадающих списках второй строки. Соответственно и цвета будут зависеть от введённых в ячейки диапазона значений. На иллюстрации выше числа выставлены по возрастанию просто для иллюстрации перехода от одного цвета к другому, однако, если числа будет стоять не в строгом порядке, цвета им будет назначаться корректно и отражать их положение относительно минимального или максимального значения в диапазоне. Просто нужно правильно интерпретировать эту цветовую градацию.

Гистограмма.
Этот вариант условного форматирования применим также только к диапазону ячеек. Отображает в каждой ячейке полоску длиной, соответствующей значению в ячейке.
Можно выбрать различные вариации для минимального и максимального значений из выпадающих списков: автоматическое или явное определение минимума и максимума, перцентиль, точное значение, процент или формулу. А также очень важные настройки скрываются под кнопкой "Ещё...":
При нажатии на эту кнопку появится дополнительный диалог "Гистограмма", в котором можно выбрать настройки минимума и максимума, цвета для полосок гистограммы, тип заливки градиент или сплошной цвет, расположение вертикальной оси в ячейке, цвет оси, а также задать максимальную и минимальную длину отображеня гистограммы в процентах от длины ячейки. Опция "Показать только полоску" будучи активированной, скроет значения в ячейках (см. иллюстрацию ниже).
На иллюстрации показаны два варианта гистограмм для одних и тех же числовых значений. Слева установлено автоматическое определение минимума и максимума, типа заливки градиент, длина полоски 100%. Справа - минимум и макисмум заданы вручную (но соответствуют значениям в ячейках), тип заливки - сплошной цвет, максимальная длина полоски ограничена 50%, активна опция "Показать только полоску" - числовые значения в ячейках не показываются, однако никуда не исчезли, на них можно ссылаться и использовать в формулах.

Набор пиктограмм (значков).
Помещает в каждую ячейку выбранный пользователем тип значка, своим видом зависящий от значения в ячейке. Внутри каждого типа существует разделение типа отрицательный, нейтральный, положительный, либо по наполненности от пустого до полного.
Такой тип условного форматирования работает также для некоего диапазона ячеек. В LibreOffice Calc есть достаточно большое разнообразие типов из 3, 4 и 5 значков:
Выбор количества и типа значков зависит от задачи по визуализации данных. 
ИМХО, 3 значка - это когда нужно показать что "всё плохо", "средне", "хорошо"; 4 значка - это когда "всё пропало и погибло", "всё плохо, но не смертельно", "не плохо", "всё хорошо"; 5 значков - "результат ноль", "есть что-то", "уже половину написал", "ещё чуть чуть осталось", "выполнили план!".
Для значков можно задать явные граничные значения, некий процент, который зависит от минимального и максимального значения в диапазоне, а также формулу.

Дата.
Этот вариант можно назначить каждой отдельной ячейке или каждой ячейке из диапазона. Есть некоторое количество условий по дате, обратите внимание на иллюстрацию ниже:
Выпадающий список можно пролистать, чтобы увидеть дополнительные варианты дат. При соответствии выбранному условию к ячейке будет применено форматирование стилем, выбранным в выпадающем списке "Применить стиль". Тут все аналогично типу условного форматирования "Условие".

среда, 22 марта 2017 г.

Пакетный экспорт документов в формат PDF, используя LibreOffice

Все действия выполнялись в ОС Windows. Наверняка для Linux есть какой-нибудь хороший способ, но мне на работе никто конфигурировать под корпоративные стандарты Linux не будет, поэтому в этой статье всё про Windows. 
Потребовалось мне по работе проводить экспорт кучи файлов в формате XSLX в формат PDF. Реально по 25 - 30 файлов за присест. И делать это надо было крайне в сжатые сроки. Пробовать всякие программулины было некогда и пришлось делать это вручную из MS Excel, благо 2010 версия это умеет. Хорошего в таком положении вещей мало, в будущем предвидится точно такие же авралы и я задумался, а какие вообще существуют способы.
Нашел я софт, который включал в себя LibreOffice, и вроде бы пакетный экспорт в PDF умел, однако он в бесплатной редакции ставит огромный рекламный блок себя на КАЖДОМ листе документа. Это не наш вариант.
Есть еще несколько подобных софтин, уже без всякого участия LibreOffice, однако либо они некорректно сам экспорт делали, то есть итоговый файл был кривой, либо пакетный экспорт был декларирован, но не работал.
Наверное можно (и нужно в будущем так и сделать) спросить у знающих Эксель товарищей, может быть есть возможность настроить пакетный экспорт, юзая сам MS Excel.
Ну, а я попросил помощи на нашем форуме http://forumooo.ru и Миша Каганский подсказал мне строку кода для консоли, которая вызывая LibreOffice в скрытом режиме выполняет искомый пакетный экспорт. Ну и в дальнейшем эта строка была оформлена в bat-файл и сам файл был переписан Мишей для того, чтобы можно было задать путь до исходных файлов и их тип, а также была прописана проверка наличия установленного в системе LibreOffice.
Вот собственно код:
@echo off

rem -------------------------------------------
rem in this file uses codepage cp866
rem -------------------------------------------
rem в этом файле используется кодировка cp866
rem -------------------------------------------

set /p "fileMask=Введите путь и маску для экспорта: "

rem ключ реестра для извлечения пути установки
rem HKEY_LOCAL_MACHINE\SOFTWARE\LibreOffice\UNO\InstallPath

setlocal ENABLEEXTENSIONS

call :QueryRegistry "HKEY_LOCAL_MACHINE\SOFTWARE\LibreOffice\UNO\InstallPath" ""

if not defined Value (
    call :QueryRegistry "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\LibreOffice\UNO\InstallPath" ""
)

echo Идет экспорт файлов в PDF, ждите
for %%f in ("%fileMask%") do start "dummyTitle" /wait "%Value%\soffice.exe" --convert-to pdf --outdir "." "%%f"
chcp 866 > nul
msg * Экспорт завершен

exit /B %ERRORLEVEL%

:: A function for querying registry value; return is in %Value%
:QueryRegistry
:: chcp 1252 makes REG QUERY to print its output in English. This makes the string look like:
::     (Default)    REG_SZ    C:\Program Files\LibreOffice 5\program
:: Without this, the string may (e.g. for Russian locale) look like:
::     (По умолчанию)    REG_SZ    C:\Program Files\LibreOffice 5\program
:: Notice the space in the (По умолчанию). This space makes additional token, and thus
:: the batch becomes non-portable.
set Value=
chcp 1252 > nul
for /F "usebackq tokens=2,*" %%A in (`REG QUERY %1 /v %2 2^>nul`) do (
    set Value=%%B
)
Вставьте его в текстовый файл, сохраните с расширением bat. Обратите внимание, что сохранить его необходимо в кодировке Cp866, иначе надписи на русском языке превратятся в крякозябры.
И ещё: файлы в формате PDF будут сохранены в то место, откуда был запущен bat-файл. Это настраивается в тексте "программы".
В конце экспорта будет показано отдельное окошко с текстом "Экспорт завершен" и кнопкой ОК. Я это сделал, чтобы видно было, что работа завершена.
Сам экспорт достаточно быстрый, однако очень сильно зависит от количества и размера файлов.
Также преимущество LibreOffice перед MS Office в данном случае в том, что LibreOffice намного всеяднее в плане поддержки кучи различных форматов файлов, а недостаток тот, что LibreOffice не совсем точно открывает файлы вражеского формата, особенно это видно, если страниц в документе много. Я увидел разницу 50 vs. 65 страниц - это бывает просто неприемлемо =(

суббота, 18 марта 2017 г.

LibreOffice 5.4. Развитие Риббона

В вики проекта увидел интересную штуку:
1. В реализацию ленточного интерфейса в LibreOffice добавили возможность добавлять свои значки на отдельную микропанельку, вот так это выглядит:
2. Добавлена поддержка тем оформления для риббона:
Заметьте, что это новшества для разных вариаций ленточного интерфейса в LibreOffice. Первая - это пародия на риббон из MS Office, причем достаточно явная, вторая - это видение разработчиков LibreOffice под названием Muffin. Темы доступны именно для Маффина и не работают для пародии на риббон.
Ещё хочу сказать, что первое впечатления от этой пары скриншотов - ещё ближе к внешнему виду MSO 2007 и более поздних. И как бы маркетологи TDF не отбрехивались, говоря, что у Либры свой путь, мое ИМХО такое: то, что делается в реализации нового видения ГУИ в Либре - это тупейшее копирование лент из стана MS Office. Я видео несколько довольно проработанных мокапов интерфейса Либры и с упрощением панелей инструментов и с развитием Боковой панели, которые реально изменили бы внешний вид Либры и повысили удобство работы, однако разработчики думают иначе.

четверг, 16 марта 2017 г.

Выпуск LibreOffice 5.3.1

Организация The Document Foundation представила первый корректирующий выпуск офисного пакета LibreOffice 5.3.1. Сборки подготовлены для различных дистрибутивов GNU/Linux, Windows и macOS.
Выпуск содержит только исправления ошибок и правки локализаций. Всем, кто использует LibreOffice версии 5.3 рекомендуется обновиться.
Списки исправлений:
https://wiki.documentfoundation.org/Releases/5.3.1/RC1
https://wiki.documentfoundation.org/Releases/5.3.1/RC2
Скачать дистрибутив для всех платформ можно вот тут: http://www.libreoffice.org/download/download/

среда, 15 марта 2017 г.

LibreOffice 5.4. Сводные диаграммы

Один из разработчиков LibreOffice, Tomaž Vajngerl, опубликовал в своем блоге пост о своей работе над созданием сводных диаграмм, которые визуализируют данные сводных таблиц. Причём при изменении данных в сводной таблице диаграмма автоматически обновляется. По ссылке https://www.youtube.com/watch?v=xRulORXWhP8 можно посмотреть, как это выглядит уже сейчас. На мой взгляд вполне завершённо и красиво. Обещано включение этой фичи в релиз LibreOffice 5.4.
Update: Tomaž опубликовал второй и третий пост о дальнейшей разработке сводных диаграмм. Также вот ссылка на финальное видео с тем, что получилось в итоге.

четверг, 2 марта 2017 г.

Странности с рендерингом изображений в текстовых документах LibreOffice

В последнее время обратил внимание, что втсавленные в текстовый документ картинки как-то странно выглядят, как будто им специально ухудшили качество. (Все картинки из статьи нужно смотреть щелкая по ним, чтобы было видно, о чем я говорю).
Вот пример:
Обратите внимание на текст внутри скриншота, вставленного в текст. Нет сглаживания и сам шрифт как будто пообкусывали.
Та же самая картинка, но уже после экспорта в пдф:
Разница есть, согласитесь. И еще это говорит о том, что это не картинка сама плохого качества, а что отображается она во Writer в плохом качестве. Зачем - это вопрос.
Вот увеличенная картинка:
Сразу оговорюсь, может эти многочисленные скриншоты со скриншотов и не передают всю глубину проблемы...
Вчера я внезапно обнаружил, что у меня включен OpenGL в портативной версии LibreOffice, в которой я работаю, и я его отключил. Картинки стали гладкие и прекрасные! На виндовс. Я порадовался, так как к багам со стороны OpenGL отношусь, как к неизбежному злу. Хорошего в них ничего нет, однако и сделать я ничего не могу (и разработчики тоже судя по всему, хотя и стараются изо всех сил).
И вишенка, тот же документ в ОС Linux в LibreOffice БЕЗ OpenGL:
OpenGL отключен, а проблема осталась =(
При этом мне намного больше нравится работать с документом в LibreOffice под Linux, как-то там все выглядит аккуратнее, и интерфейс и сам документ рендерятся корректно и красиво все.

PS: морали никакой не будет, если я соберусь с силами, то напишу багу в багзиллу, пусть даже это будет дубликатом.
PPS: Mike, если будешь писать комментарии, то пожалуйста озвучь причину такого поведения LibreOffice ;)