libxlsxwriter for Clarion
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Создание файлов Excel (xlsx) без использования Excel на основе проекта libxlsxwriter (https://libxlsxwriter.github.io). Можно создавать файлы, листы в них, писать данные (текст (в т.ч. русский), число, дата, время), ставить форматирование (цвет, рамки, шрифт, выравнивание, размер), объединять ячейки, фиксировать и скрывать строки и колонки, вставлять изображения, рисовать графики (диаграммы), устанавливать настройки печати и свойства документа.
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
- Вложения
-
- libxlsxwriter.zip
- Версия 1.5 от 30.12.2021 на основе библиотеки 1.1.4
- (276.26 КБ) 996 скачиваний
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Начнём с того, что ширина и высота ячейки в Microsoft Excel задаётся в совсем разных единицах измерения.
Конкретно интересующая нас ширина дословно: "в кол-ве символов стандартным шрифтом".
О ! Т.е. как минимум нужно знать какой шрифт в данной копии Microsoft Excel считается стандартным и
усреднённыё показатель ширины символа этим шрифтом ...
Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5239
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Ежику понятно, что в разных... В xlsx, как я понял, стандартным шрифтом является тот, который с индексом 0. То есть первый в списке создаваемых.
C6/C12, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5239
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Не правильно написал. Тот, который соответствует стилю с индексом 0. Надо уточнить на всякий случай.
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Ёжику конечно хорошо ... но дело в том, что если даже гипотетически вычислить этот показатель - это будет информация ни о чём.
Есть конкретная ячейка (или несколько ячеек). Ширина, предположим 40 этих самых символов (задаётся в XLSXWriter).
Но сколько это будет строк - зависит от букв в конкретном тексте, да ещё с учётом переноса по словам.
Внутри среды Excel - этот вопрос решается. Как быть ёжику в этой ситуации - непонятно ...
Есть конкретная ячейка (или несколько ячеек). Ширина, предположим 40 этих самых символов (задаётся в XLSXWriter).
Но сколько это будет строк - зависит от букв в конкретном тексте, да ещё с учётом переноса по словам.
Внутри среды Excel - этот вопрос решается. Как быть ёжику в этой ситуации - непонятно ...

Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5239
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Кстати, в опенах единицы измерения отличаются от excel, насколько помню. Поэтому могут быть нюансы с округлением.
C6/C12, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5239
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Создаете на экране text-контрол с нужным шрифтом и нужной ширины. Вписываете туда значение. Смотрите количество строк. Получаете высоту. Переводите в единицы для excel...
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
В теории конечно светло ... но перед тем как создать контрол, сначала нужно (как-то) узнать его ширину по ширине ячейки.
А потом полученное кол-во строк перевести в совсем другие единицы измерения высоты. И кстати, не факт, что межстрочный
интервал и правила переноса слов в контроле и ячейке Microsoft Excel совсем одинаковы. Короче, тупиковый путь.
А потом полученное кол-во строк перевести в совсем другие единицы измерения высоты. И кстати, не факт, что межстрочный
интервал и правила переноса слов в контроле и ячейке Microsoft Excel совсем одинаковы. Короче, тупиковый путь.

Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5239
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Ширина ячеек известна, Вы их сами устанавливаете. Вопрос в переводе в пиксели. Правила переноса по идее должны быть аналогичны. Пробовать, конечно, надо. А какие еще варианты вычисления высоты строки?
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Я вот день поработал, и хочу сказать, что процесс рисования сетки для более или менее сложных
бланков упростился раза в два точно. (а если тупо рисовать сетку на всю таблицу - то без разницы)

Но главное: появилась некая логическая последовательность и целостность в этом процессе,
которая видимо отцами-основателями библиотеки в неё и закладывалась изначально.
Спасибо ещё раз !

Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Добавил функции установки формата чисел в графиках. Исправил небольшой нюанс - не сбрасывался "жирный" шрифт в графиках, какая-то проблема внутри библиотеки, не нашел в чем причина, автор старательно кивает в мою сторону, но зато нашел, как это проблему обойти. Занимательно, в целом ))
Изменился метод вставки графиков в лист!
Обновил шапку
Готово уже более 90%. Думаю пора выкладывать в мировой прокат, но не знаю как и куда. Гитхаб что-то слишком замороченным показался
Изменился метод вставки графиков в лист!
Обновил шапку
В "обертке" все функции библиотеки, кроме
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
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
- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Да, вариантов кроме него и нет ... Все там.
Проконсультируйтесь у Деда Пахома. У него в том лесу давно пасека стоит ...

Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Выложил сюда https://sourceforge.net/projects/libxlsxwriter/
Там то же самое, что здесь, только пример на английском
Там то же самое, что здесь, только пример на английском
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5239
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Ну, почему тупиковый. Работает все. Причем, можно и не только одну строку ресайзить, а, к примеру, последнюю из заданной области или задаваемую...Игорь Столяров писал(а): 01 Февраль 2018, 18:58В теории конечно светло ... но перед тем как создать контрол, сначала нужно (как-то) узнать его ширину по ширине ячейки.
А потом полученное кол-во строк перевести в совсем другие единицы измерения высоты. И кстати, не факт, что межстрочный
интервал и правила переноса слов в контроле и ячейке Microsoft Excel совсем одинаковы. Короче, тупиковый путь.
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8032
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Круто ! И сразу конкурент нарисовался со своим двухсотбаксовым интерфейсом на 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
Везде бюрократия.
Если кому-то (кроме меня) интересна реализация в XLSXWriter группировка строк,
сказали идти регистрироваться и лайкать вот сюда: https://github.com/jmcnamara/libxlsxwriter/issues/30
Везде бюрократия.

Make Clarion Great Again ! 