libxlsxwriter for Clarion

Программы на Clarion, шаблоны, библиотеки и пр.

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Создание файлов Excel (xlsx) без использования Excel на основе проекта libxlsxwriter (https://libxlsxwriter.github.io). Можно создавать файлы, листы в них, писать данные (текст (в т.ч. русский), число, дата, время), ставить форматирование (цвет, рамки, шрифт, выравнивание, размер), объединять ячейки, фиксировать и скрывать строки и колонки, вставлять изображения, рисовать графики (диаграммы), устанавливать настройки печати и свойства документа.
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
Вложения
libxlsxwriter.zip
Версия 1.5 от 30.12.2021 на основе библиотеки 1.1.4
(276.26 КБ) 997 скачиваний
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8032
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

finsoftrz писал(а): 01 Февраль 2018, 17:45враппере ширина колонки и высота
Начнём с того, что ширина и высота ячейки в Microsoft Excel задаётся в совсем разных единицах измерения.
Конкретно интересующая нас ширина дословно: "в кол-ве символов стандартным шрифтом".
О ! Т.е. как минимум нужно знать какой шрифт в данной копии Microsoft Excel считается стандартным и
усреднённыё показатель ширины символа этим шрифтом ...
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

libxlsxwriter for Clarion

Сообщение finsoftrz »

Ежику понятно, что в разных... В xlsx, как я понял, стандартным шрифтом является тот, который с индексом 0. То есть первый в списке создаваемых.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

libxlsxwriter for Clarion

Сообщение finsoftrz »

Не правильно написал. Тот, который соответствует стилю с индексом 0. Надо уточнить на всякий случай.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8032
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

Ёжику конечно хорошо ... но дело в том, что если даже гипотетически вычислить этот показатель - это будет информация ни о чём.
Есть конкретная ячейка (или несколько ячеек). Ширина, предположим 40 этих самых символов (задаётся в XLSXWriter).
Но сколько это будет строк - зависит от букв в конкретном тексте, да ещё с учётом переноса по словам.
Внутри среды Excel - этот вопрос решается. Как быть ёжику в этой ситуации - непонятно ... :(
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

libxlsxwriter for Clarion

Сообщение finsoftrz »

Кстати, в опенах единицы измерения отличаются от excel, насколько помню. Поэтому могут быть нюансы с округлением.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

libxlsxwriter for Clarion

Сообщение finsoftrz »

Создаете на экране text-контрол с нужным шрифтом и нужной ширины. Вписываете туда значение. Смотрите количество строк. Получаете высоту. Переводите в единицы для excel...
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8032
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

В теории конечно светло ... но перед тем как создать контрол, сначала нужно (как-то) узнать его ширину по ширине ячейки.
А потом полученное кол-во строк перевести в совсем другие единицы измерения высоты. И кстати, не факт, что межстрочный
интервал и правила переноса слов в контроле и ячейке Microsoft Excel совсем одинаковы. Короче, тупиковый путь. :(
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

libxlsxwriter for Clarion

Сообщение finsoftrz »

Ширина ячеек известна, Вы их сами устанавливаете. Вопрос в переводе в пиксели. Правила переноса по идее должны быть аналогичны. Пробовать, конечно, надо. А какие еще варианты вычисления высоты строки?
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8032
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

RaFaeL писал(а): 31 Январь 2018, 16:43Я добавил XLSX:NoBorder
Я вот день поработал, и хочу сказать, что процесс рисования сетки для более или менее сложных
бланков упростился раза в два точно. (а если тупо рисовать сетку на всю таблицу - то без разницы) :)

Но главное: появилась некая логическая последовательность и целостность в этом процессе,
которая видимо отцами-основателями библиотеки в неё и закладывалась изначально.
Спасибо ещё раз ! :)
Make Clarion Great Again ! 😎
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Добавил функции установки формата чисел в графиках. Исправил небольшой нюанс - не сбрасывался "жирный" шрифт в графиках, какая-то проблема внутри библиотеки, не нашел в чем причина, автор старательно кивает в мою сторону, но зато нашел, как это проблему обойти. Занимательно, в целом ))
Изменился метод вставки графиков в лист!
Обновил шапку
В "обертке" все функции библиотеки, кроме
workbook_new_opt
workbook_set_custom_property_string
workbook_set_custom_property_number
workbook_set_custom_property_boolean
workbook_set_custom_property_datetime
workbook_define_name
workbook_get_worksheet_by_name
workbook_validate_worksheet_name

worksheet_write_array_formula
worksheet_data_validation_cell
worksheet_data_validation_range
worksheet_protect

format_set_num_format_index
format_set_unlocked
format_set_hidden

chart_series_set_points

chart_series_set_error_bars
chart_series_set_error_bars_direction
chart_series_set_error_bars_endcap
chart_series_set_error_bars_line
Готово уже более 90%. Думаю пора выкладывать в мировой прокат, но не знаю как и куда. Гитхаб что-то слишком замороченным показался
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8032
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

RaFaeL писал(а): 01 Февраль 2018, 21:26Гитхаб что-то слишком замороченным показался
Да, вариантов кроме него и нет ... Все там.
Проконсультируйтесь у Деда Пахома. У него в том лесу давно пасека стоит ... ;)
Make Clarion Great Again ! 😎
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Выложил сюда https://sourceforge.net/projects/libxlsxwriter/
Там то же самое, что здесь, только пример на английском
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

libxlsxwriter for Clarion

Сообщение finsoftrz »

Игорь Столяров писал(а): 01 Февраль 2018, 18:58В теории конечно светло ... но перед тем как создать контрол, сначала нужно (как-то) узнать его ширину по ширине ячейки.
А потом полученное кол-во строк перевести в совсем другие единицы измерения высоты. И кстати, не факт, что межстрочный
интервал и правила переноса слов в контроле и ячейке Microsoft Excel совсем одинаковы. Короче, тупиковый путь. :(
Ну, почему тупиковый. Работает все. Причем, можно и не только одну строку ресайзить, а, к примеру, последнюю из заданной области или задаваемую...
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8032
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

RaFaeL писал(а): 02 Февраль 2018, 0:24Выложил сюда https://sourceforge.net/projects/libxlsxwriter/
Круто ! И сразу конкурент нарисовался со своим двухсотбаксовым интерфейсом на ClarionHUB ! :)
Вообще, конечно, интересна реакция мировой общественности. Му тут, что-то потихоньку кропаем,
а кто знает какие вопросы возникнут при экспорте на иврите или иероглифах ... ;)
Make Clarion Great Again ! 😎
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8032
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

Мило пообщался по e-mail с автором библиотеки. Дайджестом:
Если кому-то (кроме меня) интересна реализация в XLSXWriter группировка строк,
сказали идти регистрироваться и лайкать вот сюда: https://github.com/jmcnamara/libxlsxwriter/issues/30
Везде бюрократия. :)
Make Clarion Great Again ! 😎
Ответить