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 КБ) 991 скачивание
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
libxlsxwriter for Clarion
Лень. Слишком много переделывать в кодах, ежели по уму делать. А так тупо берёшь и переставляешь...Напишите свой subclass вызова методов XLSXWriter

Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 8028
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Спасибо ! Отличный проект !

Но главное: реально востребованный и живой !

Make Clarion Great Again ! 
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
libxlsxwriter for Clarion
А глюки в библиотеке есть!

worksheet#=xlsx.AddSheet('...') имеет ограничения на длину строки. Причём, вылетает по памяти
Последний раз редактировалось Губин Игорь 13 Февраль 2019, 7:48, всего редактировалось 1 раз.
Это я только кажусь дураком! На самом деле я полный идиот!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
http://libxlsxwriter.github.io/workbook ... 030ecc3c2eГубин Игорь писал(а): 12 Февраль 2019, 22:50worksheet#=xlsx.AddSheet('...') имеет ограничения на длину строки. Причём вылетает по памяти
http://libxlsxwriter.github.io/workbook ... 140c434031The worksheet name must be a valid Excel worksheet name, i.e. it must be less than 32 character
Это?
Сдается мне, что worksheet# в вашем примере будет =0 а вы это не проверяете и продолжаете дальше вызывать методы
- Игорь Столяров
- Ветеран движения
- Сообщения: 8028
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Не только. Там ещё есть и ограничения на используемые символы, кстати, как и в самом Microsoft Excel.Губин Игорь писал(а): 12 Февраль 2019, 22:50worksheet#=xlsx.AddSheet('...') имеет ограничения на длину строки.
Я поэтому всегда сначала проверяю "проблему" через интерфейс Microsoft Excel, а потом уже делаю выводы о глюках и т.д.

Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Код: Выделить всё
err#=xlsx.ValidateSheetName('...')
if err#=0
worksheet#=xlsx.AddSheet('...')
! some code
end
Код: Выделить всё
worksheet#=xlsx.AddSheet('...')
if worksheet#
! some code
end
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
libxlsxwriter for Clarion
Вылетает у меня, в рабочем приложении, в момент присвоения. Но на тестовом примере - да, повторил с workcheet=0 и вылетает после. В чём разница - не понятно.RaFaeL писал(а): 12 Февраль 2019, 23:12Сдается мне, что worksheet# в вашем примере будет =0 а вы это не проверяете и продолжаете дальше вызывать методы
А вот за Validate - спасибо. Попробую использовать, хотя, в моём случае, 99% - пустая проверка, всё равно не будет соответствовать.
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 8028
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Оно как бы да ! Но …
Вот реальный пример из жизни кроликов:
Хочу отправить клиенту его накладные за год, каждая накладная на отдельной закладке
с наименованием почему-то "Накладная № [123] от 18.02.2019 г." и т.д.
В процессе создания отчёта получаю недопустимое наименование закладки и что оно мне с того ?
Здесь бы хорошо поиметь метод, который выполнит не валидацию, а нормализацию наименования закладки.
Т.е. сразу преобразует это наименование в допустимый вид, заменив запрещённые символы, предположим на "_"
(по аналогии с именами файлов, где запрещены символы: \/:*?"<>| )
Т.е. что-то вроде:
Код: Выделить всё
worksheet#=xlsx.AddSheet('...' , <NormalizeSheetName = False>)
Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5236
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Что наших кроликов останавливает? 
Лучше это внутри класса убрать, не надо лишних параметров в вызовах...

Лучше это внутри класса убрать, не надо лишних параметров в вызовах...
C6/C12, ШВС, tps/btrieve.
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Ну так у вас же есть свой класс-обертка, там наверняка это можно написать )Игорь Столяров писал(а): 18 Февраль 2019, 8:08Здесь бы хорошо поиметь метод, который выполнит не валидацию, а нормализацию наименования закладки.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8028
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Ну да. Просто думал может проскочить на шару (т.е. сделать в базовом методе) ?RaFaeL писал(а): 18 Февраль 2019, 9:19Ну так у вас же есть свой класс-обертка, там наверняка это можно написать

Make Clarion Great Again ! 
- Игорь Столяров
- Ветеран движения
- Сообщения: 8028
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Согласный я с этим …RaFaeL писал(а): 18 Февраль 2019, 9:56Базовый метод должен повторять функциональность оригинальной библиотеки


Make Clarion Great Again ! 
- Губин Игорь
- Шубуршун
- Сообщения: 2584
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
libxlsxwriter for Clarion
Потом - алгоритм в студию. У меня есть аналогичный алгоритм нормализации для имён файлов в похожей ситуации. Т.ч. икебана будет полной
Это я только кажусь дураком! На самом деле я полный идиот!